C++地图销毁
C++ map destruction
我想清除析构函数中的映射,但我不知道它是否为空。如果我按如下方式清除它可以吗?
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((({} 以检查它是否为空。
如果映射为空,则m_map.begin()
将与m_map.end()
相同,因此循环不会执行任何操作。 m_map.clear()
(或者更确切地说~std::map
会发生,但这会做clear()
或等效的(将由编译器作为析构函数的一部分提供的析构函数自动发生,因此不需要。
对于空地图,代码是可以的。m_map.begin(( 将等于 m_map.end((,因此如果映射为空,则 for 循环体不会执行。
如果它为空,则 for 循环不会执行,因此它不会有任何区别。
相关文章:
- 为什么不;名字在地图上是按顺序排列的吗
- 基于多个条件处理地图中的所有元素
- 在C++中将矢量转换为嵌套地图
- 替换基于地图的所有引用
- 如何区分地图中的 0 和 false?
- 地图计数确实很重要,或者只是检查是否存在
- 如何从地图中删除矢量对象
- 是否有任何C++功能可以对地图进行排序?
- 如何使用 std::variant 打印地图键/值?
- 从矢量或地图中删除共享指针
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- 无限嵌套具有变体的地图
- C++一会儿循环读到地图上 2 行?
- 如何在cpp中使用地图显示给定日期范围内(在下面的问题中)的费率?
- 如何检查变量是否是C++中的地图?
- 如何使地图按值C++排序
- 修改地图内矢量中的值
- 为什么我在地图中搜索STL时差很大?
- 我正在尝试按降序对地图进行排序,但没有得到预期的结果?
- 如何包装(撰写)增强 hana 地图并访问括号运算符(运算符 [])?