是否有任何语法硬编码向量作为参数

Is there any syntax to hardcode vector as parameter?

本文关键字:向量 参数 编码 任何 语法 是否      更新时间:2023-10-16

例如,我可以像这样硬编码数组作为参数:

void test(pair<string,int> v[],int size){
    for(int i=0;i<size;i++){
        printf("%s %dn",v[i].first.c_str(),v[i].second);
    }
}
int main(){
    test((pair<string,int>[]){make_pair("a",1),make_pair("b",2)},2);
    return 0;
}

这样我就不需要创建v[]对的临时变量,也不需要担心临时变量的变量名,如果使用vector:

是否有类似的语法
void test(vector<pair<string,int> > v){
    for(pair<string,int> p : v){
        printf("%s %dn",p.first.c_str(),p.second);
    }
}

?

因为c++ 11在std::initializer_list的帮助下引入了列表初始化(不要与构造函数初始化列表混淆),你确实可以使用std::vector(它已经被修改为有一个接受std::initializer_list的构造函数),你可以简单地做

test({{"a",1), {"b",2}});