std::list と std::map を空にして、すべてのポインターで delete を呼び出したいと思います。
この質問を読んだ後、私はこれを std::list に使用しています:
mylist.remove_if([](myThingy* thingy) -> bool { delete thingy; return true; });
std::map にも同様に簡潔なものはありますか?
私のコンパイラ (VC10) でサポートされていないため、範囲ベースの for ループを使用できないことに注意してください。それが可能であれば、私は仮定します
for(auto* thingy : myMap) { delete thingy; }
myMap.clear();
動作します。間違っている場合は修正してください。