gpt4 book ai didi

c++ - 清除多级 std::map

转载 作者:搜寻专家 更新时间:2023-10-31 01:37:01 24 4
gpt4 key购买 nike

如果我有这样的多级 map ,

std::map<int, std::map<int, int>> myMap;

constructor() {
std::map<int, int> myInsideMap;

myInsideMap.insert(std::make_pair(1,2));
myMap.insert(std::make_pair(1, myInsideMap));
}

destructor() {
// is this cleared correctly?? recursively?
myMap.clear();
}

我希望 myMap.clear() 也能清除 myInsideMap。它会像我预期的那样工作吗?

最佳答案

I expect myMap.clear() will clear myInsideMap too. would it be working that I expected?

没有。 myMap.clear() 将销毁它自己的 myInsideMap 拷贝。当 constructor() 范围退出时,myMap 将不复存在。

标准库容器拥有自己的元素。当它们被清除或不复存在时,它们的元素也会被销毁。

关于c++ - 清除多级 std::map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34848840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com