Re: Цикл по Stl-коллекции, если нужно удаление
От: Аноним  
Дата: 24.07.02 07:25
Оценка: 3 (1)
Здравствуйте DarkGray, Вы писали:

 std::list <int> List;
 ...  
 list <int>::iterator Iter = List.begin ();
 while ( Iter != List.end () ) 
    List.erase ( Iter++ );


Для for'a можно немного переделать.
Весь фокус в том, что постинкрементный operator++ ДЕЛАЕТ КОПИЮ текущего итератора, увеличивает текущий итератор и возвращает сохраненную копию. Таким образом, текущий итератор остается валидным :-).
Good luck
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.