Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

initializer_list

类模板  <initializer_list>

template<class T> class initializer_list;

初始化列表
该类型用于访问c++初始化列表中的值,该初始化列表是一个const T类型的元素列表。

这种类型的对象由编译器根据初始化列表声明自动构造,初始化列表是用大括号括起来的逗号分隔的元素列表:
auto il = { 10, 20, 30 };  // the type of il is an initializer_list

请注意,这个模板类没有隐式定义,即使隐式使用类型,也要包含头文件<initializer_list>来访问它。

initializer_list对象被自动构造,就像分配了一个T类型的元素数组一样, 列表中的每个元素都被复制初始化为数组中相应的元素,使用任何必要的非收缩隐式转换。

initializer_list对象引用这个数组中的元素不包含: 复制一个initializer_list对象会生成另一个对象引用相同的基础元素,而不是它们的新副本(引用语义)。

这个临时数组的生存期与initializer_list对象相同。

只接受一个这种类型参数的构造函数是一种特殊的构造函数,称为初始化列表构造函数。 当使用初始化列表构造函数语法时,初始化列表构造函数优先于其他构造函数:
struct myclass {
  myclass (int,int);
  myclass (initializer_list<int>);
  /* definitions ... */
};

myclass foo {10,20};  // calls initializer_list ctor
myclass bar (10,20);  // calls first constructor

☲  模板参数


T
元素的类型。
成员类型initializer_list::value_type的别名。

☲  成员类型


成员类型 定义
value_type 模板参数(T)
reference const T&
否则,没有定义。
const_reference const T&
size_type size_t
iterator const T*
const_iterator const T*

☲  成员函数



(constructor) 构造空initializer_list(公共成员函数)
size 返回列表的大小(公共成员函数)
begin 返回起始位置的迭代器(公共成员函数)
end 返回end迭代器(公共成员函数)

☲  非成员函数重载



begin (initializer_list) 返回起始的迭代器(函数模板)
end (initializer_list) 返回end迭代器(函数模板)
联系我们 免责声明 关于CandCplus 网站地图