看到一个函数调用的情况,如下:
Func({task}, 1);
函数参数居然可以带大括号。
了解原来这是C++11支持的{}初始化方式,叫做“初始化列表(initializer list)”。
比如下面几种
void func22(vectoraa) { cout << "func22: "; for(int i=0; i cout << aa[i] << " "; } cout << endl; } void func33(initializer_list aa) { const int* a = aa.begin(); cout << "func33: "; for(; a cout << *a << " "; } cout << endl; } int main() { int dd2{23}; //值 int aa[]{1,2,4}; //数组 std::vector va{2,3,4}; //容器 func22({1,2,3}); //函数参数 func33({3,4,5}); }
运行结果: