定义于: <initializer_list>
概述
template< class T >
class initializer_list;
std::initializer_list
是一个轻量级容器,用于保存列表初始化或花括号初始化中的对象。
内存
本节需要改进。您可以通过编辑此文档页面来帮助我们。
技术细节
特性测试宏
本节需要改进。您可以通过编辑此文档页面来帮助我们。
技术定义
类型为 std::initializer_list<T>
的对象是一个轻量级代理对象,它提供对 const T
类型对象数组的访问。
std::initializer_list<T>
对象在以下情况自动构造:
- 花括号初始化列表用于列表初始化对象,其中相应的构造函数接受
std::initializer_list<T>
参数 - 花括号初始化列表用作赋值的右操作数或函数调用参数,并且相应的赋值运算符/函数接受
std::initializer_list<T>
参数 - 花括号初始化列表绑定到 auto,包括在范围 for 循环中
初始化列表可以实现为一对指针或指针和长度。
复制 std::initializer_list
不会复制底层对象。
底层数组是一个 const T[N]
类型的临时数组,其中每个元素都从原始初始化列表的相应元素进行复制初始化(除了窄化转换无效)。底层数组的生命周期与任何其他临时对象相同,但从数组初始化初始化列表对象会像将引用绑定到临时对象一样延长数组的生命周期(具有相同的例外情况,例如初始化非静态类成员)。底层数组可能分配在只读内存中。
如果 Count > Extent
,则程序格式错误。
std::initializer_list
的显式或部分特化。std::initializer_list
定义于 | initializer_list |
模板参数
pub | T | 元素的类型。 |
类型名称
pub | value_type | T |
pub | reference | const T& |
pub | const_reference | const T& |
pub | size_type | 无符号整型(通常是std::size_t ) |
pub | iterator | const T* |
pub | const_iterator | const T* |
成员函数
pub | (构造函数) | 构造一个初始化列表。 |
pub | (析构函数) | 销毁初始化列表。 |
容量
pub | size | 返回元素数量。 |
迭代器
pub | begin cbegin (自 C++11 起) | 返回指向起始元素的 |
pub | end cend (自 C++11 起) | 返回指向结束元素的 |
非成员函数
pub | std::begin (std::initializer_list) | std::begin 的重载。 |
pub | std::end (std::initializer_list) | std::end 的重载。 |
为 std::initializer_list
重载的自由函数模板
pub | rbegin crbegin (自 C++14 起) | 返回一个反向 |
pub | rend crend (自 C++14 起) | 返回一个反向 |
pub | empty (自 C++17 起) | 如果初始化列表为空,则返回 |
pub | 数据 (自 C++17 起) | 返回指向底层数组第一个元素的指针。 |
示例
本节需要改进。您可以通过编辑此文档页面来帮助我们。