initializer_list 类
提供访问元素数组的权限,其中数组的每个成员均具有指定的类型。
语法
template <class Type>
class initializer_list
参数
类型
要在 initializer_list
中存储的元素数据类型。
注解
使用大括号内的初始值设定项列表可构造 initializer_list
。
initializer_list<int> i1{ 1, 2, 3, 4 };
每当函数签名需要 initializer_list
时,编译器将具有同类元素的大括号内的初始值设定项列表转换为 initializer_list
。 有关使用 initializer_list
的详细信息,请参阅统一初始化和委托构造函数
构造函数
构造函数 | 说明 |
---|---|
initializer_list | 构造 initializer_list 类型的对象。 |
Typedef
类型名称 | 说明 |
---|---|
value_type |
initializer_list 中元素的类型。 |
reference |
一个类型,它提供对 initializer_list 中元素的引用。 |
const_reference |
一个类型,它提供对 initializer_list 中元素的常量引用。 |
size_type |
一个类型,它表示 initializer_list 中元素的数目。 |
iterator |
一个类型,它为 initializer_list 提供迭代器。 |
const_iterator |
一个类型,它为 initializer_list 提供常量迭代器。 |
成员函数
成员函数 | 说明 |
---|---|
begin | 返回指向 initializer_list 中第一个元素的指针。 |
end | 返回指向 initializer_list 中最后一个元素之后的元素的指针。 |
size | 返回 initializer_list 中的元素数量。 |
要求
标头:<initializer_list>
命名空间: std
initializer_list::begin
返回指向 initializer_list
中第一个元素的指针。
constexpr const InputIterator* begin() const noexcept;
返回值
指向 initializer_list
的第一个元素的指针。 如果列表为空,该指针对于列表的开头和末尾都相同。
initializer_list::end
返回指向 initializer list
中最后一个元素之后的元素的指针。
constexpr const InputIterator* end() const noexcept;
返回值
指向列表中最后一个元素之后的元素的指针。 如果列表为空,则指向列表中第一个元素的指针也为空。
initializer_list::initializer_list
构造 initializer_list
类型的对象。
constexpr initializer_list() noexcept;
initializer_list(const InputIterator First, const InputIterator Last);
参数
第一个
要复制的范围元素中的第一个元素的位置。
Last
要复制的元素范围以外的第一个元素的位置。
注解
initializer_list
基于指定类型的对象数组。 复制 initializer_list
会创建指向相同对象的列表的第二个实例;但不会复制基础对象。
示例
// initializer_list_class.cpp
// compile with: /EHsc
#include <initializer_list>
#include <iostream>
int main()
{
using namespace std;
// Create an empty initializer_list c0
initializer_list <int> c0;
// Create an initializer_list c1 with 1 element
initializer_list <int> c1{ 3 };
// Create an initializer_list c2 with 5 elements
initializer_list <int> c2{ 5, 4, 3, 2, 1 };
// Create a copy, initializer_list c3, of initializer_list c2
initializer_list <int> c3(c2);
// Create a initializer_list c4 by copying the range c3[ first, last)
const int* c3_ptr = c3.begin();
c3_ptr++;
c3_ptr++;
initializer_list <int> c4(c3.begin(), c3_ptr);
// Move initializer_list c4 to initializer_list c5
initializer_list <int> c5(move(c4));
cout << "c1 =";
for (auto c : c1)
cout << " " << c;
cout << endl;
cout << "c2 =";
for (auto c : c2)
cout << " " << c;
cout << endl;
cout << "c3 =";
for (auto c : c3)
cout << " " << c;
cout << endl;
cout << "c5 =";
for (auto c : c5)
cout << " " << c;
cout << endl;
}
c1 = 3
c2 = 5 4 3 2 1
c3 = 5 4 3 2 1
c5 = 5 4
initializer_list::size
返回列表中元素的数目。
constexpr size_t size() const noexcept;
返回值
列表中元素的数目。