La façon la plus propre de l'itération par l'intermédiaire d'un vecteur est par les itérateurs:
for (auto it = begin (vector); it != end (vector); ++it) {
it->doSomething ();
}
ou (équivalent à la ci-dessus)
for (auto & element : vector) {
element.doSomething ();
}
Avant C++0x, vous devez remplacer l'auto par l'itérateur de type et de l'utilisation des fonctions de membre au lieu de fonctions globales de début et de fin.
C'est probablement ce que vous avez vu. Par rapport à l'approche que vous mentionnez, l'avantage est que vous n'avez pas dépendent fortement du type d' vector
. Si vous modifiez vector
à un autre de la collection "type" de la classe, votre code sera probablement encore du travail. Vous pouvez, cependant, faire quelque chose de similaire en Java ainsi. Il n'y a pas beaucoup de différence sur le plan conceptuel; C++, cependant, utilise des modèles pour mettre en œuvre la présente (par rapport à des génériques en Java); par conséquent, l'approche de travail pour tous les types pour qui begin
et end
fonctions sont définies, même pour les non-classe de types, tels que les tableaux statiques. Voir ici: Comment est la plage base de travail pour la plaine des tableaux?