3
map<int, map<int, vector<string> > > test;
// some statement to assign values to test
test.clear();

以上是否足以释放测试使用的所有内存,或者我必须迭代地图以一一释放内部地图和矢量?

4

2 回答 2

7

是的,您的代码足以清除内部映射及其包含的向量。容器的析构函数将负责清除映射的键和值中保存的资源。当然,被清空的映射本身在被销毁之前不会被释放,无论是超出范围还是由于其所有者对象被删除。

于 2013-06-19T20:40:14.753 回答
1

释放所有子容器分配的所有内存就足够了。所有 STL 容器都是如此。

于 2013-06-19T20:40:49.993 回答