C++:从 "for each"循环中的映射中删除值

标签 c++ stl dictionary foreach function-pointers

对于 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/

相关文章:

c++ - 我可以将字符串传递给 istream_iterator<int> 吗

c++ - std::vector-like 类优化以容纳少量项目

javascript - Redux Spread 运算符与 Map

c# - 在 WPF 中使用字典进行双向数据绑定(bind)

c++ - 为什么 CMake 使用 Opencv 未正确设置包含目录(MSVC 2010 项目)

c++ - 使用 boost::asio 获取没有标题的 html

C++ 无序映射常量时间访问?

arrays - 在 Swift 4 中从 Url 获取 JSON 数据

c++ - OMNeT++:对 `typeinfo for inet::IMobility' 的 undefined reference

c++ - 跟踪文件名更改