Re[3]: удаление некоторых элементов из map - как это работае
От: Александр Россия  
Дата: 06.10.04 07:13
Оценка:
Здравствуйте, maslukov, Вы писали:

M>Здравствуйте, Александр, Вы писали:


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>>>  }
M>>>  else it++;
M>>>}

M>>>


А>>так делать НИЗЯ!... после map.erase(it->first) итератор может указывать черт знает куда!

А>>а от чего зависит условие?? почему бы просто не удалять по ключу?
M> всмысле? а я удаляю не по ключю??? map.erase( а здесь ключ )...
я немного не про то.... зачем делать перебор мапа? от чаго зависит проверка условия от ключа или от значения?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.