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