上QQ阅读APP看书,第一时间看更新
5.1 初始化列表
POD结构或数组根据成员在结构内定义的顺序,可以使用初始化列表来进行初始化,以简化代码。
struct MyStruct{ int a; int b;}; MyStruct st = { 1, 2}; int a[] = { 1, 2, 3};
在C++03中,非POD结构的类或STL容器并不支持这种简便的写法,而C++11提供了强大的支持。使用std::initializer_list,可以让类及普通函数使用初始化列表,并且标准容器也可以使用初始化列表。
//类使用初始化列表——初始化列表构造函数 class MyClass { public: MyClass(std::initializer_list<int> list); } MyClass ms = {1, 2, 3}; //函数使用初始化列表 void MyFun(std::initializer_list<float> list); MyFun({1.5f, -3.8f}); //标准容器使用初始化列表 vector<string> v = {"baoye", "abc", "test"};