来自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;
}
}
}
答案 0 :(得分:0)
首先,您需要一个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}}
请查看此问题以获取详细信息How to set default parameter as class object in c++?
脚注:您可能还想阅读有关the details of default arguments
仅在函数声明的参数列表和lambda表达式中(从C ++ 14开始)才允许使用默认参数,并且在函数的指针,函数的引用,或在typedef声明中。