Как удалить значения из QMap?

Предположим, я хочу удалить элементы по какому-то критерию. Скажем:

QMap<int, int> map;

и я хочу удалить все элементы, где значение является нечетным числом. Если я использую итератор:

for (auto it = map.begin(); it != map.end(); ++it)
    if (it.value() % 2 == 1)
        map.remove(it.key());

Этот код, вероятно, неверен, так как вызов

map.remove(it.key()) 

делает итератор недействительным. Как это сделать без сброса итератора после каждого удаления?

11
задан Martin Drozdik 27 July 2012 в 14:06
поделиться