来自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 声明中的声明中使用。