Это зависит от рассматриваемой коллекции. Например, изменение std::vector
(например, добавление элемента куда-либо) может сделать недействительными все итераторы в этом векторе. В отличие от этого, при std::list
итераторы остаются действительными, когда вы добавляете в список еще один элемент. В некоторых случаях правила являются даже более сложными (например, если память служит, с std::deque
, добавление в начало или конец оставляет существующие итераторы действительными, но добавление в любом другом месте может сделать их недействительными - но моя память недостаточно Вы должны проверить, прежде чем в зависимости от этого).