【发布时间】:2010-12-23 16:17:17
【问题描述】:
例如,一个名为 Table 的类,其构造函数为:
Table(string name="", vector <string> mods);
如何将向量初始化为空?
编辑: 忘了说这是 C++。
【问题讨论】:
-
我猜这是C++?
标签: c++ string parameters vector constructor
例如,一个名为 Table 的类,其构造函数为:
Table(string name="", vector <string> mods);
如何将向量初始化为空?
编辑: 忘了说这是 C++。
【问题讨论】:
标签: c++ string parameters vector constructor
Table(string name="", vector <string> mods);
如果你想让向量在构造函数中为空,那么
mods.clear();
或
mods.swap(vector<string>());
如果你想作为默认参数:
Table(string name="", vector<string> mods = vector<string>());
与任何其他默认参数一样。
【讨论】:
vector<string> mods 属于 reference,那么在这种情况下您必须使用 const,因为 C++ 不允许将临时变量与reference.
补充另一个答案:如果您使用的是 c++11,则可以使用通用初始化语法将向量的默认参数声明缩短为以下内容:
Table(string name="", vector<string> mods={});
【讨论】: