Re: STL iterators
От: Vitalische  
Дата: 06.08.01 09:03
Оценка:
Здравствуйте malloc, вы писали:

M>как правильно удалять элементы из списка?


M>код примерно такой


M>MyType::iterator it = mylist.begin();

M>for(; it != mylist.end(); it++)
M>{
M> if (something)
M> mylist.erase(it)
M>}

M>очевидно как-то нарушает целостность итератора

M>как правильно переписать этот участок?
M>

Итератор становится невалидным, потому что удаляется элемент, на который он указывает.

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