在使用CPP中使用STD :: MAP之前,我应该致电清晰

Should I call clear before use std::map in cpp

本文关键字:我应该 清晰 MAP CPP STD 之前      更新时间:2023-10-16

我想知道是否必须在使用之前清除 std::map?例如,在以下代码中,我应该在构造函数中调用 m_map.clear

struct stu
{
  ...
}
class A
{
 public:
     A()
       {
          m_map.clear;  // is this necessary?
       };
     ~A();
 private:
     map<int ,stu> m_map;
}

您的班级构造函数中无需调用clear()。

确切了解STL的特定方法的一种好方法,因此您何时以及为什么称呼它,是通过搜索一个好的参考网站,例如:http://en.cppreference.com/w/CPP/容器/地图

如果您向下浏览页面,则会找到clear方法,然后遵循链接后,对其功能的描述"从容器中删除所有元素"。您是否在此容器中添加了任何元素?不,因此无需调用此方法。

此外:如果您不对它执行任何初始化操作,您如何知道任何数据成员处于什么状态?在这种情况下,可以保证调用成员变量的默认构造函数,即std::map m_map变量。类的默认构造函数是构造函数方法,该方法不采用任何参数,或者通过默认值提供所有参数的位置。再次提供默认构造函数的参考网站" 1)默认构造函数。构造空容器。因此,您的容器(以及许多其他STL容器)可以立即完美地使用,而无需清除。