Здравствуйте, Александр, Вы писали:
M>>
M>>// Инициализацяи и лишние опрелделения пропущены
M>>// этот код неверен
M>>it = m_map.begin();
M>>while(it != m_map.end)
M>>{
M>> if(условие)// проверка условия
M>> {
M>> //- удаление по ключю - MAP перестраиваеться следовательно it может не достигнуть m_map.end()
M>> map.erase(it->first)
Ну предположим что мы сохранили итератор, потом увеличили и потом удалили сохраненный... вопрос ведь не в этом...
M>> }
M>> else it++;
M>>}
M>>
А>так делать НИЗЯ!... после map.erase(it->first) итератор может указывать черт знает куда!
А>а от чего зависит условие?? почему бы просто не удалять по ключу?
всмысле? а я удаляю не по ключю??? map.erase( а здесь ключ )...