« Patrons de conception/Itérateur » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Litlok (discussion | contributions)
m Révocation des modifications de 134.206.40.80 (retour à la précédente version de Foxar)
Ligne 17 :
* Les itérateurs fournissent un moyen cohérent d'''itérer'' sur toutes sortes de structures de données, rendant ainsi le code client plus lisible, réutilisable, et robuste même en cas de changement dans l'organisation de la structure de données.
* Un itérateur peut implanter des restrictions additionnelles sur l'accès aux éléments, par exemple pour empêcher qu'un élément soit « sauté », ou qu'un même élément soit visité deux fois.
* Un itérateur peut ''dans certains cas'' permettre que le conteneur soit modifié, sans être invalidé pour autant. Par exemple, après qu'un itérateur se soits'est positionné derrière le premier élément, il est possible d'insérer d'autres éléments au début du conteneur avec des résultats prévisibles. Avec un index on aurait plus de problèmes, parce que la valeur de l'index devrait elle aussi être modifiée en conséquence.<br/>'''Important:''' consultez bien la documentation de votre itérateur pour savoir dans quels cas il est invalidé ou non!
 
La possibilité pour un conteneur de se voir modifiermodifié pendant une itération s'est imposée comme nécessaire dans la [[programmation objet]] moderne, où les relations entre objets et l'effet de certaines opérations peut devenir un casse-tête. En utilisant un tel itérateur "robuste", ces désagréments nous sont épargnés.
 
== Itérateurs implicites ==