首页 > 解决方案 > C++ 使用内部列表清除 std::map

问题描述

如果我有这样的 std::mapstd::map<int, std::list<int> > myMap;

在地图中填充了列表并且我希望稍后清除所有元素之后,这样做是否足够简单myMap.clear();,或者我应该先浏览地图中的每个元素并先清除每个列表?

标签: c++stdmapstdlist

解决方案


不,您可以只使用myMap.clear(). 它负责所有必要的清理工作。

更准确地说,它delete是树中的每个节点,并且由于每个节点都是 a std::pair<int, std::list<int>>,因此删除会导致std::list::~list调用析构函数 - 这个析构函数负责清理它拥有的数据。


推荐阅读