C++ 如何为向量设置默认参数<;字符串>;在类中的默认构造函数中使用?
例如,一个名为Table的类,其构造函数为: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>()); 表(字符串名称=”
表(字符串名称=”,向量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={});