C++ 如何为向量设置默认参数<;字符串>;在类中的默认构造函数中使用?

C++ 如何为向量设置默认参数<;字符串>;在类中的默认构造函数中使用?,c++,string,parameters,vector,constructor,C++,String,Parameters,Vector,Constructor,例如,一个名为Table的类,其构造函数为: 表(字符串名称=”,向量mods) 如何将向量初始化为空 编辑: 忘了提到这是C++。 Table(string name="", vector <string> mods); 或 mods.swap(vector()); 如果要将其作为默认参数,请执行以下操作: Table(string name="", vector<string> mods = vector<string>()); 表(字符串名称=”

例如,一个名为Table的类,其构造函数为:
表(字符串名称=”,向量mods)

如何将向量初始化为空

编辑: 忘了提到这是C++。
Table(string name="", vector <string> mods);

mods.swap(vector());
如果要将其作为默认参数,请执行以下操作:

 Table(string name="", vector<string> mods = vector<string>());
表(字符串名称=”,向量mods=vector();

与任何其他默认参数一样。

添加到其他答案:如果使用c++11,可以使用通用初始化语法将向量的默认参数声明缩短为以下内容:

Table(string name="", vector<string> mods={});
表(字符串名称=”,向量mods={});

<代码>我猜这是C++?谢谢!我一直在尝试向量mods(0,“”)和许多其他变体。根本不会想到这一点!在编辑消息之前捕获到消息,此方法可以使用vector mods=vector(),并且vector mods=vector()抱怨需要模板参数。我很高兴看到了第一条消息,因为我可能没有想到在作业的两边都放模板参数。如果你想让你的参数
向量mods
成为
参考
,那么在这种情况下你必须使用
常量
,因为
C++
不允许将临时变量与
引用关联。这比其他选项要好得多。
 Table(string name="", vector<string> mods = vector<string>());
Table(string name="", vector<string> mods={});