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;

返回值

列表中元素的数目。

另请参阅

<forward_list>