map<int, map<int, vector<string> > > test;
// some statement to assign values to test
test.clear();
是否足以释放test使用的所有内存,或者我必须迭代map以逐个释放内部map和vector ?
是的,您的代码足以清除内部映射及其包含的向量。容器的析构函数将负责清除映射的键和值中保存的资源。当然,清空的map本身不会被释放,除非它被销毁,要么是超出作用域,要么是它的所有者对象被删除。
释放所有子容器分配的所有内存就足够了。