最終更新日時: 2026年01月31日 13時25分25秒 (JST)
Akira Takahashi が更新

履歴 編集

class template
<initializer_list>

# std::initializer_list(C++11)

    namespace std {
      template<class E>
      class initializer_list;
    }

## 概要

`<initializer_list>`ヘッダで提供される`initializer_list`クラスは、ユーザー定義型が初期化子リスト構文による初期化を可能にするための特別なクラスである。コンテナクラスの初期化、代入に使用される。

## メンバ関数

名前 | 説明 | 対応バージョン
--- | --- | ---
`(constructor)` | コンストラクタ | C++11
`~initializer_list() = default;` | デストラクタ | C++11
`size` | 要素数を取得する | C++11
`begin` | 先頭要素へのポインタを取得する | C++11
`end` | 最後尾要素の次を指すポインタを取得する | C++11
`data` | 配列の先頭へのポインタを取得する | C++26
`empty` | 配列が空かどうかを判定する | C++26

## メンバ型

名前 | 説明 | 対応バージョン
--- | --- | ---
`value_type` | `E` | C++11
`reference` | `const E&` | C++11
`const_reference` | `const E&` | C++11
`size_type` | `size_t` | C++11
`iterator` | `const E*` | C++11
`const_iterator` | `const E*` | C++11

## 非メンバ関数

名前 | 説明 | 対応バージョン
--- | --- | ---
`begin` | 先頭要素へのポインタを取得する | C++11 C++26で削除
`end` | 最後尾要素の次を指すポインタを取得する | C++11 C++26で削除

## 例

    #include <initializer_list>
    #include <vector>

    template <class T>
    class Vector {
      std::vector<T> vec_;
    public:
      Vector(std::initializer_list<T> init)
        : vec_(init.begin(), init.end()) {}
    };

    int main()
    {
      const Vector<int> v = {1, 2, 3}; // 初期化子リストによる初期化
    }

### 出力

## バージョン

### 言語

- C++11

### 処理系

- GCC: 4.4.0 ✅

## 関連項目

- C++11 初期化子リスト