在使用CPP中使用STD :: MAP之前,我应该致电清晰
Should I call clear before use std::map in cpp
我想知道是否必须在使用之前清除 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容器)可以立即完美地使用,而无需清除。
相关文章:
- 我应该使用什么来代替void作为变体中的替代类型之一
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 我应该删除矢量<short>吗?
- 我应该如何修改此代码以使用给定字符串中的字母打印菱形图案
- 我应该在锁定TBitmap画布后解锁它吗
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 我应该避免多重实现继承吗
- 为了方便起见,我应该避免公开私有字段变量吗
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 违反const正确性:我应该现实地期待什么问题
- 我应该如何表示我拥有的连续元素序列?
- 我应该将除 .cpp 以外的其他文件添加到 git 中吗?
- 我应该如何从 stdin C++ 中读取可变长度的格式字符串?
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 我应该如何捕捉out_of_range异常?
- 我应该声明所有不抛出 noexexcept 的成员/函数吗?
- OpenCV 我应该使用智能指针来防止内存泄漏吗?
- 在使用CPP中使用STD :: MAP之前,我应该致电清晰