跳到主要内容

std::initializer_list 构造函数

默认构造函数

initializer_list();
  • 此构造函数是 constexprnoexcept

构造一个空的初始化列表。

注意

尽管缺少构造函数,但可以创建非空初始化列表。在以下情况下会隐式构造 std::initializer_list 的实例:

  • 在列表初始化中使用带花括号的初始化列表,包括函数调用列表初始化和赋值表达式(不要与构造函数初始化列表混淆)
  • 在范围 for 循环中,带花括号的初始化列表绑定到 auto

复杂度

常数 - O(1)

示例

#include <initializer_list>
#include <iostream>
#include <vector>

int main() {
std::initializer_list<int> ilist; // default constructed

// implicitly construced initializer list
for(int i : { 1, 2, 3 }) std::cout << i << ' ';

// list initialization, implicitly constructed initializer list
std::vector<int> v = { 4, 5, 6, 7, 8 };
for(int i : v) std::cout << i << ' ';
}
结果
1 2 3 4 5 6 7 8
本文源自此 CppReference 页面。它可能为了改进或编辑者的偏好而进行了修改。点击“编辑此页面”查看本文档的所有更改。
悬停查看原始许可证。

std::initializer_list 构造函数

默认构造函数

initializer_list();
  • 此构造函数是 constexprnoexcept

构造一个空的初始化列表。

注意

尽管缺少构造函数,但可以创建非空初始化列表。在以下情况下会隐式构造 std::initializer_list 的实例:

  • 在列表初始化中使用带花括号的初始化列表,包括函数调用列表初始化和赋值表达式(不要与构造函数初始化列表混淆)
  • 在范围 for 循环中,带花括号的初始化列表绑定到 auto

复杂度

常数 - O(1)

示例

#include <initializer_list>
#include <iostream>
#include <vector>

int main() {
std::initializer_list<int> ilist; // default constructed

// implicitly construced initializer list
for(int i : { 1, 2, 3 }) std::cout << i << ' ';

// list initialization, implicitly constructed initializer list
std::vector<int> v = { 4, 5, 6, 7, 8 };
for(int i : v) std::cout << i << ' ';
}
结果
1 2 3 4 5 6 7 8
本文源自此 CppReference 页面。它可能为了改进或编辑者的偏好而进行了修改。点击“编辑此页面”查看本文档的所有更改。
悬停查看原始许可证。