Здравствуйте, vayerx, Вы писали:
S>>Насколько я знаю, после удаления элемента из контейнера итератор теряет свою значимость.
V>Не совсем так. vector::erase() делает недействительными все итераторы после удаляемой позиции. Соответственно, если идти от конца массива к его началу декрементируя итератор, проблем с удалением не будет.
Спасибо, но оказывается все еще проще. erase возращает итератор на тот элемент, который занимает место удаленного.
for(it=v.begin();it!=v.end();)if(условие)v.erase(it);else it++;