Как долго живет итератор, возвращаемый std :: set.find ()? - PullRequest
7 голосов
/ 02 марта 2010

Мне нужно отслеживать элемент std :: set, сохраняя итератор, возвращаемый set.find ().

Мои вопросы: вставка и удаление других элементов делает недействительным полученный итератор? Из простого теста, который я сделал, я вижу, что это не так, но я хотел бы убедиться, что эта функция разработана.

1 Ответ

11 голосов
/ 02 марта 2010

Он никогда не делает недействительными итераторы или указатели / ссылки на элементы. Только если вы удалите сам элемент, итератор или указатель / ссылка станут недействительными.

23.1.2/8 * * 1004

Элементы вставки не должны влиять на действительность итераторов и ссылок на контейнер, а члены стирания должны делать недействительными только итераторы и ссылки на стертые элементы.

...