jpb*_*123 3 c++ struct unordered-map
我有一张地图如下图所示.
struct B {
int b1;
int b2;
int b3;
};
struct A {
B a1;
B a2;
};
unordered_map<int, unordered_map<int, A>> outer_map;
Run Code Online (Sandbox Code Playgroud)
我用一些元素填充了这个inner_map,每个内部map对象也初始化了几个元素.
所以我的问题是如何清除outer_map,以便我可以新填充数据?
outer_map.clear()有效吗?当你在这里打电话时,内部到底发生了什么?有人可以提供一些内部细节吗?
如果运行outer_map.clear()keys(int)和values(unordered_map<int, A>)将全部删除.当它们被移除时,如果有任何析构函数要调用,它们将被调用.这意味着unordered_map<int, A>将调用任何存储的析构函数,这反过来将删除所有的A析构函数,并调用它们的析构函数.