我有一张地图如下所示。
struct B {
int b1;
int b2;
int b3;
};
struct A {
B a1;
B a2;
};
unordered_map<int, unordered_map<int, A>> outer_map;我用一些元素填充了这个inner_map,每个内部映射对象也初始化了几个元素。
那么,我的问题是,您如何清除outer_map,以便我能够填充新的数据?
outer_map.clear()工作吗?当你在这里说清楚的时候,内部到底会发生什么?有人能给出一些内部细节吗?
发布于 2018-06-05 17:39:27
如果运行outer_map.clear(),则键(int)和值(unordered_map<int, A>)都将被删除。当它们被移除时,如果有任何可调用的析构函数,它们将被调用。这意味着任何存储的unordered_map<int, A>的析构函数都将被调用,这反过来将删除所有的A,同时调用它们的析构函数。
https://stackoverflow.com/questions/50705918
复制相似问题