c++ - C++ 使用内部列表清除 std::map
问题描述
如果我有这样的 std::mapstd::map<int, std::list<int> > myMap;
在地图中填充了列表并且我希望稍后清除所有元素之后,这样做是否足够简单myMap.clear();
,或者我应该先浏览地图中的每个元素并先清除每个列表?
解决方案
不,您可以只使用myMap.clear()
. 它负责所有必要的清理工作。
更准确地说,它delete
是树中的每个节点,并且由于每个节点都是 a std::pair<int, std::list<int>>
,因此删除会导致std::list::~list
调用析构函数 - 这个析构函数负责清理它拥有的数据。
推荐阅读
- android - 在边框内添加前景
- reactjs - 是否可以使用 setState 中的回调函数返回和显示组件?
- bash - 如何检查预览中的特定pdf是否已经打开
- azure - 使用 Kudu 在 azure 应用服务上部署 python 应用时重新同步重命名权限被拒绝错误
- jquery - 导出到excel Datatable时如何换行?
- java - 需要在Java中实现阈值窗口
- r - glmnet 4.0负二项式回归:“seq.default(log(lambda_max),log(lambda_max * lambda.min.ratio)中的错误,:'from'必须是有限数”
- c++ - 无法在 C++ 端获得相同的输出张量值
- function - Flutter GestureDetector 无法处理功能
- python-3.x - 在 Pandas 中计算复杂项的 Pythonic 方法(值大于或等于一个数字除以列表的长度)