对于 std::vector<double*> v;
我可以删除 double
通过调用
std::for_each(v.begin(), v.end(), (void(*)(void* a))operator delete);
现在,如果我有 std::map<int, double*> m;
相反,我可以在不使用显式循环、boost 或非标准 STL 扩展的情况下做类似的事情吗? IE。什么是 ???
在
std::for_each(m.begin(), m.end(), ???);
最佳答案
不客气。 std::map<int, std::unique_ptr<double>>
.不再需要 delete
手动,你可以 clear()
map 。智能指针 > 显式删除每次。
关于C++:从 "for each"循环中的映射中删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10196766/