std::initializer_list 构造函数
默认构造函数
- 自 C++14 起
- 直到 C++14
- 简化
- 详细
initializer_list();
- 此构造函数是
constexpr
和noexcept
constexpr initializer_list() noexcept;
- 简化
- 详细
initializer_list();
- 此构造函数为
noexcept
initializer_list() noexcept;
构造一个空的初始化列表。
注意
尽管缺少构造函数,但可以创建非空初始化列表。在以下情况下会隐式构造 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