Wind:

> std::map <int, СЛОЖНАЯ_СТРУКТУРА> <...> задача удаления не нужных записей <...>

> 1) Перебираю каждый элемент списка на соответствие некоторым условиям
> 2) Встретился элемент, который нужно удалить — удалил его и продолжил искать далее
> Но вот незадача, после удаления элемента итераторы становятся не действительными

Только непосредственно удаленный.

> Что псоветуете?


for (MyMap::iterator i = m.begin(), e = m.end(); i != e; /* здесь пусто */ )
{
   if ( . . . )
     m.erase(i++);
   else
     ++i;
}
Posted via RSDN NNTP Server 1.9 gamma
Автор: Павел Кузнецов    Оценить