只是一个简单的问题,如果你有说。
using namespace std;
map< int, vector< string > > map1;
或者甚至是..:
map< int, map< int, vector< string > > > map2;
只是让你得到正确的想法,
map< int, map< int, map< int, vector< string > > > > map3;
如果我这样做,
map1.clear();
map2.clear();
map3.clear();
它是否安全,因为它将清空地图中的所有东西 和它的嵌套地图,向量,列表等?
注:我知道如果你使用指针,你需要手动去删除,或者如果地图出了范围,它应该也没问题,我只对这种情况特别感兴趣,当在范围内和堆栈上。
是的,这是完全安全的。STL容器负责内存管理。
但是,如果你存储了你自己分配的对象的指针,你也必须自己删除它们。
std::vector<MyClass*> vec;
vec.push_back(new MyClass());
vec.clear(); // you get a memory leak here because you did not delete the object you allocated.