C++向量默认为成员参数



来自php的低级编码新手,如何使用向量正确定义成员默认参数?

A(int x = 0, std::string y, 
std::vector<std::string> z = {0{"ScreenName","ID"}, ... } 
){
switch(x){
case 0: CreateNewPlayer(z["ScreenName"], z["ID"]); break;
default:
/* log function*/
break;
}
}
}

首先,你需要一个std::map吗?vector没有一个需要std::string的运算符。

所以你不能用向量写z["key"](但你可以用地图(

要使用默认参数,您可以说:

A(int x = 0, std::string y = "", 
std::vector<std::string> z = {"ScreenName","ID"}, ... )

如果您使用的是地图,则std::map<std::string, int>{{"screenName", 0}}

查看此问题以了解详细信息 如何在c ++中将默认参数设置为类对象?

脚注:您可能还想阅读有关默认参数的详细信息

默认参数只允许在函数声明和 lambda 表达式的参数列表中(自 C++14 起(,不允许在指向函数的指针、对函数的引用或 typedef 声明中的声明中使用。

最新更新