std::initializer_list
时间: 2024-10-24 08:00:46 浏览: 12
嵌入式avr编译器工具链GCC支持lambda和initializer-list<T>
`std::initializer_list` 是 C++ 标准库中的一个容器适配器,它提供了一种简洁的方式来初始化容器、数组或其他可以接受迭代器范围的对象。它是一个模板类,允许你通过一系列元素直接创建一个列表,而不需要显式构造每个元素并将其插入到目标对象中。
例如,你可以这样使用 `std::initializer_list` 来快速创建一个整数向量:
```cpp
std::vector<int> numbers = {1, 2, 3, 4, 5}; // 相当于 std::vector<int>(1, 2, 3, 4, 5);
```
或者创建一个字符数组:
```cpp
char string[] = {'H', 'e', 'l', 'l', 'o'}; // 可以看作 std::initializer_list<char>{'H', 'e', 'l', 'l', 'o'};
```
`std::initializer_list` 的优点在于代码简洁,并且可以在需要的地方节省内存,因为它避免了不必要的临时对象的创建。然而,它的大小有限制,通常不超过大约64个元素,超出这个范围就会触发运行时错误。
阅读全文