Можно ли корректно пройти последовательно по QMap с помощью итераторов, выполняя такие действия: удаление некоторых элементов и добавление новых?
Например:
for( QMap<key_t,val_t>::iterator it = map.begin();
it != map.end();
++it )
{
if( it->value == something )
{
map.erase(it);
map.insert(it->key+10,it->value);
}
}
Кажется, что ничего не будет сделано неправильно, я спрашиваю, чтобы убедиться. (У меня нет времени проверять).
UPD Буду решать с помощью QMap::unite()
:
for( QMap<key_t,val_t>::iterator it = map.begin();
it != map.end();
++it )
{
if( it->value == something )
{
tmp_map.insert(it->key+10,it->value);
map.erase(it);
}
}
map.unite(tmp_map);
Спасибо за ответы!