2010-03-02 12 views
7

J'ai besoin de garder trace de l'élément std :: set en sauvegardant l'itérateur retourné par set.find().Combien de temps dure l'itérateur retourné par std :: set.find()?

Mes questions est l'insertion et la suppression autres éléments invalide l'itérateur obtenu? D'un simple test, je l'ai fait, je ne peux pas le voir, mais je voudrais m'assurer que cette fonctionnalité est conçue.

Répondre

11

Il n'invalide jamais les itérateurs ou les pointeurs/références aux éléments. Ce n'est que si vous supprimez l'élément lui-même que l'itérateur ou le pointeur/la référence deviennent invalides.

23.1.2/8:

Les membres d'insertion ne doivent pas affecter la validité des itérateurs et des références au conteneur, et les membres d'effacement doivent invalider seulement itérateurs et les références aux éléments effacés.

+0

Merci. C'était rapide! – jackhab