C++ 如何清除包含地图的地图? map测试; //为测试赋值的一些语句 test.clear();

C++ 如何清除包含地图的地图? map测试; //为测试赋值的一些语句 test.clear();,c++,C++,是的,您的代码足以清除内部映射及其包含的向量。容器的析构函数将负责清除保存在映射的键和值中的资源。当然,清空的映射本身将不会被释放,直到它被销毁,无论是通过超出作用域还是由于其所有者对象被删除。释放所有子容器分配的所有内存就足够了。所有STL容器都是如此。等等,不,我误解了这个问题:(这不是一个骗局……哎呀。这个库不是白痴设计的,当然你不需要一个一个地释放每个元素。你希望也要释放每个字符串中的每个char吗?为什么我最近看到三个人都试图调用clear()在标准容器上释放内存,以免它们超出作用域?

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

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

等等,不,我误解了这个问题:(这不是一个骗局……哎呀。这个库不是白痴设计的,当然你不需要一个一个地释放每个元素。你希望也要释放每个
字符串中的每个
char
吗?为什么我最近看到三个人都试图调用
clear()
在标准容器上释放内存,以免它们超出作用域?如果不分配内存,则无需担心释放内存。感谢dasblinkenlight。我打算保留空映射,因为我只想刷新它的内容。
map<int, map<int, vector<string> > > test;
// some statement to assign values to test
test.clear();