Как поменять значение индекса в map. С обычным значением понятно, обращаться через индекс.
map
Поменять значение понятно, как:
factor[it->first]=0;
А как поменять индекс, т.е. надо, чтобы было:
factor[45]=99;
factor[32]=56
Понимаю, что легче просто новые создать, но останутся старые элементы map. Как их убрать, тогда?
Имею такой map:
[2]=2
[3]=2
Пытаюсь так сделать:
ps[pow(it->first, it->second)] = ui;
if(pow(it->first, it->second) !=it->second)
ps.erase(it->first);
it++;
При первом проходе у нас заносится запись [4]=2 и удаляется [2]=2.И почему-то итератор становится it=end. Где проблема?
Ответ
Создать новые - убрать старые. Удаление элемента std::map по ключу (по "индексу") делает метод erase
map
// Добавляем
factor[2]=4;
factor[6]=7;
// Удаляем
factor.erase(2);
factor.erase(6);
Комментариев нет:
Отправить комментарий