map и удаление элементов.
От: Павел Кузнецов  
Дата: 27.10.04 22:20
Оценка: 30 (5) +2 -2
#Имя: FAQ.stl.map.erase
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
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.