• [^] # Re: Célèbre ?

    Posté par . En réponse à la dépêche Sortie de Ruby on Rails 2.0. Évalué à 3.

    > foreach($array as $element)

    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.