例:int values[]{1,2,3};
vector<int>v{2,3,5,7,11,13,17};
解析:编译器会将{2,3,5,7,11,13,17}做出一个initializer_list<T>,它关联一个array<T,n>。在调用 构造函数时,如果vector内部有以initializer_list<T>为参数的构造函数,则会将initializer_list<T>传入进行初始化。如果没有,则会将{2,3,5,7,11,13,17}分解成单个去调用单个参数的构造函数。
initializer_list<T>: 内部有这样两个变量:iterator指向array的首地址,size_type表array的长度。还有一个私有的构造函数,编译器可以调用,对iterator和size_type对象进行初始化。