Я работаю с полиномами и сохраняю их в std :: map как градусы и коэффициенты. Вот фрагменты кода:Ошибка уменьшения члена только для чтения при использовании std :: map
std::map<int,int> pol;
Карта заполнена данными, а затем я начинаю ее обрабатывать.
for(std::map<int,int>::iterator it = pol.begin(); it != pol.end(); it++) {
if(it->first != 0) {
it->second *= it->first;
it->first--;
}
else {
it->first = 0;
it->second = 0;
}
}
И начиная с it-> first-- и дальше я получаю очень большое количество продукции с ошибками, как error: decrement of read-only member ‘std::pair<const int, int>::first’ it->first--; ^~
или error: assignment of read-only member ‘std::pair<const int, int>::first’ it->first = it->first - 1;
Почему это только для чтения? Как я могу это исправить?
$ g++ --version
g++ (Debian 6.3.0-5) 6.3.0 20170124
Возможный дубликат [force key type of std :: map не должен быть const] (http://stackoverflow.com/questions/6773734/force-key-type-of-a-stdmap-not-to- be-const) – nwp