首页 > 解决方案 > 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;
              }
        }
    }

标签: c++

解决方案


首先你需要一个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 声明中。


推荐阅读