Je ne sais pas si un foreach de php peut être considéré comme un itérateur. foreach est pratique.
Dans le cas du C++ (et sa librairie standard), il y a des itérateurs. Un itérateur est un type, donc il peut être utilisé avec toute classe (si elle l'implémente).
Par exemple :
// recherche la position de val dans list
X::const_iterator pos = find(list.begin(), list.end(), val) ;
// depuis val jusqu'à la fin
while (pos != list.end()) {
[...]
pos++ ;
}
Qu'on peut aussi écrire pour les accros du for() :
for (X::const_iterator pos = find(list.begin(), list.end(), val) ; pos != list.end() ; pos++) { [...] }
list peut être presque n'importe quoi (vecteur, liste chainée, map, flux E/S, etc). Donc c'est utilisable avec les modèles. Le polymorphisme est supporté via mem_func. M'enfin, force est de reconnaitre que ce n'est pas trivial.
[^] # Re: Célèbre ?
Posté par IsNotGood . En réponse à la dépêche Sortie de Ruby on Rails 2.0. Évalué à 3.
Je ne sais pas si un foreach de php peut être considéré comme un itérateur. foreach est pratique.
Dans le cas du C++ (et sa librairie standard), il y a des itérateurs. Un itérateur est un type, donc il peut être utilisé avec toute classe (si elle l'implémente).
Par exemple :
// recherche la position de val dans list
X::const_iterator pos = find(list.begin(), list.end(), val) ;
// depuis val jusqu'à la fin
while (pos != list.end()) {
[...]
pos++ ;
}
Qu'on peut aussi écrire pour les accros du for() :
for (X::const_iterator pos = find(list.begin(), list.end(), val) ; pos != list.end() ; pos++) { [...] }
list peut être presque n'importe quoi (vecteur, liste chainée, map, flux E/S, etc). Donc c'est utilisable avec les modèles. Le polymorphisme est supporté via mem_func. M'enfin, force est de reconnaitre que ce n'est pas trivial.