Re[2]: как удалить элементы из контейнера vector в цикле
От: serega3000  
Дата: 28.10.06 21:36
Оценка:
Здравствуйте, vayerx, Вы писали:

S>>Насколько я знаю, после удаления элемента из контейнера итератор теряет свою значимость.


V>Не совсем так. vector::erase() делает недействительными все итераторы после удаляемой позиции. Соответственно, если идти от конца массива к его началу декрементируя итератор, проблем с удалением не будет.


Спасибо, но оказывается все еще проще. erase возращает итератор на тот элемент, который занимает место удаленного.

for(it=v.begin();it!=v.end();)if(условие)v.erase(it);else it++;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.