いくつかの基準に従ってアイテムを削除したいとします。まあ言ってみれば:
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())
イテレータを無効にします。各削除後にイテレータをリセットせずにこれを行うにはどうすればよいですか?