Obtenir l'index dans C ++ 11 foreach loop
Est-il un moyen pratique pour obtenir l'index de l'conteneur actuel de l'entrée dans C++11 boucle foreach, comme enumerate
en python:
for idx, obj in enumerate(container):
pass
Que j'ai pu imaginer un itérateur qui peut aussi retourner l'index ou similaire.
Bien sûr, je pourrais avoir un compteur, mais souvent les itérateurs ne pas donner des garanties de l'ordre d'itérer dessus d'un récipient.
source d'informationauteur hildensia
Vous devez vous connecter pour publier un commentaire.
Une bonne mise en œuvre de la fonctionnalité qui vous sont demandées, peut être trouvé ici:
https://github.com/ignatz/pythonic
L'idée derrière est que vous pourrez vous créer un wrapper struct avec un itérateur qui ne le dépouillement. Ci-dessous est très minime mise en œuvre exemplaire pour illustrer l'idée:
À propos d'une solution simple comme:
Vous pourriez faire un peu plus "difficile" pour ajouter le code après le comptoir par l'ajout d'un champ:
@Graham.des roseaux pointus, normal
for
boucle est aussi une solution, qui pourrait être aussi rapide:Et enfin, une voie alternative à l'aide de l'algorithme:
Si vous avez besoin de l'index puis un traditionnel pour fonctionne parfaitement bien.