gpt4 book ai didi

C++ map 销毁

转载 作者:行者123 更新时间:2023-11-28 00:42:14 33 4
gpt4 key购买 nike

我想清除析构函数中的一个映射,但我不知道它是否为空。如果我按如下方式清除它可以吗?

for(std::map<int, int *>::iterator it = m_map.begin(); it != m_map.end(); ++it)
{
delete it->second;
}
m_map.clear();

或者我还应该在上述操作周围放置一个 if 条件,例如 if(!m_map.empty()){} 以检查它是否为空。

最佳答案

如果 map 为空,m_map.begin() 将与 m_map.end() 相同,因此循环不会执行任何操作。 m_map.clear()(或者更确切地说 ~std::map 会发生,但这会发生 clear() 或等效的)会发生由编译器作为析构函数的一部分提供的析构函数自动提供,因此不需要。

关于C++ map 销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18203229/

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