说明
1.一个std::initializer_list<E>
对象会在以下情况自动创建:
- 一个
大括号初始化列表
被用在一个构造函数的参数来初始化对象。 - 一个
大括号初始化列表
被用在右边的赋值操作符或者作为一个函数的参数,并且相对应的赋值操作符和函数接收一个std::initializer_list
参数 - 一个
大括号初始化列表
被auto
关键字限制范围时,包括在ranged-for
循环里。
2.std::initializer_list<E>
对象只有3个成员函数,size(),begin(),end()
.
3.注意,单纯的一个{1,2.3}
并不是std::initializer_list
,要满足条件1的情况才会自动std::initializer_list<E>
对象. 所以{1,2,3}.size()是错的
。
4.C++11
之前的C++98
的{}
初始化列表只能用在数组上:
int number[5] = {0}; // 静态数组:全部初始化为0
int n