LINUX.ORG.RU

Удаление из map


0

0

как можно наиболее оптимально решить следующую задачу :? есть map<string, Object*> m_xObjects;

надо прошерстить map и удалить из него Objects, соответствующие определенному критерию. Насколько я понимаю - после erase iterator становится инвалидным...

anonymous

Попробуй так:

typedef map<...> TABLE;
TABLE table;

TABLE::iterator p = table.begin();
while (p != table.end())
{
p = find_if(table.begin(), table.end(), my_seeker);
// take a look at Straustrup
// or
// p = table.find(KEY);
if (p!=table.end())
map.erase(p);
}

Это первое что пришло в голову и не обязательно лутший вариант:))

tvn
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.