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 ✅