Как поменять значение индекса в map
. С обычным значением понятно, обращаться через индекс.
map<int, int> factor;
/*Имеем в нем значения
factor[2]=4;
factor[6]=7*/
auto it=factor.begin();
Поменять значение понятно, как:
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<int, int> factor;
// Добавляем
factor[2]=4;
factor[6]=7;
// Удаляем
factor.erase(2);
factor.erase(6);
Поменять значение понятно, как: factor[it->first]=0;
А it->second = 0;
- недостаточно кошерно? :)
Вы, похоже, как-то неверно представляете себе работу map
...
Просто вносите что вам нужно - как вы писали:
factor[45]=99;
factor[32]=56;
Ну, а ненужное удалить - для того erase
есть.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
По заданию необходимо отобразить карту на экране и рисовать на ней линииПробую сделать вот так:
Есть класс автобусЕсть после destination (маршрут который проходит) petrol (количество бензина потраченного)
Почему происходит переполнение стека, если осуществлять цикл посредством for(), хотя с циклом do-while компиляция выполняется корректно?