我有一个 std::list 和一个 std::map 我想清空并在所有指针上调用 delete 。
阅读此问题后,我将其用于 std::list:
mylist.remove_if([](myThingy* thingy) -> bool { delete thingy; return true; });
std::map 是否有类似简洁的东西?
请注意,我不能使用基于范围的 for 循环,因为我的编译器 (VC10) 不支持它。如果可能的话,我假设
for(auto* thingy : myMap) { delete thingy; }
myMap.clear();
会工作。如果我错了,请纠正我。