Pour des iterators… Il peut regarder pas aussi la première fois, mais les iterators sont un genre de plus normal. Quand vous résolvez un problème, vous tendez à penser en termes « traitez tous les éléments de… », ou mathématiquement « pour tous les éléments dans… ». La seule manière dont conventionnelle de faire est d'employer une boucle. La boucle de moment dans des langues de C-famille est trop générale ; vous avez faites quelques étapes sur vos propres. Pour la boucle dans des langues de C-famille est une petite amélioration syntactique du moment. Dans d'autres langages de programmation, pour la boucle est une boucle comptée. Mais ceci signifie également que vous devez transformer un index à l'élément répertorié. En raison de celui, vous tendez souvent à mettre les éléments dans une certaine structure répertoriée -- à une rangée ou à un vecteur.
Si vous pensez davantage cela, ce que votre vraiment besoin est un genre de boucle généralisée cette des boucles par tous les éléments d'un récipient sans préparer nécessairement un certain index numérique. Si vous personnifiez le processus, l'ouvrier dit à encore « me donnent le prochain », et pas « me donner 3254th ». Est exactement ce pour ce que les iterators sont bons. L'iterator est type-bondissent de façon ou d'autre dans le récipient. Alors vous pouvez être non intéressé par les détails internes (s'il est indexé à l'intérieur, ou si c'est une structure liée). En d'autres termes, les iterators apportent plus d'abstraction.
Malheureusement, les iterators sont plus nouveaux que le noyau de C++ et donc là n'est aucune boucle et syntaxe généralisées pour faire tous de cet plus évident syntactiquement. Une fois que vous vous habituez à un meilleur sytax de la boucle généralisée (dans d'autres langues, comme dans le python où les iterators fonctionnent presque comme par magie, caché), vous manquez vraiment cette syntaxe dans C++. La nouvelle norme de C++ va l'améliorer un peu.