Я думаю, это зависит от контейнера.
Реальный вопрос заключается в том, является ли (оставшийся) диапазон итераторов для обхода недействительным или нет.
Это зависит от изменений. std
алгоритмы определены с их поведением: они упоминают, какие итераторы недействительны, когда.
Обновление
Может также зависеть от типа итератора,
vector::erase
делает недействительными все последующие итераторы
list::erase
не