2010-03-02 3 views
7

Ich muss das std :: set-Element verfolgen, indem ich den von set.find() zurückgegebenen Iterator speichere.Wie lange hat der von std :: set.find() zurückgegebene Iterator?

Meine Fragen ist das Einfügen und Entfernen andere Elemente ungültig den erhaltenen Iterator? Von einem einfachen Test konnte ich sehen, dass es nicht ist, aber ich möchte sicherstellen, dass dieses Feature von Entwurf ist.

Antwort

11

Es macht niemals Iteratoren oder Zeiger/Referenzen auf die Elemente ungültig. Nur wenn Sie das Element selbst entfernen, wird der Iterator oder Zeiger/Verweis ungültig.

23.1.2/8:

Die Einsatzteile berührt nicht die Gültigkeit von Iteratoren und Verweise auf den Behälter beeinflussen, und die Lösch Mitglieder werden nur Iteratoren und Verweise auf die gelöschten Elemente ungültig machen.

+0

Danke. Das war schnell! – jackhab