cpp11的std::array 和 std::initializer_list
时间: 2023-05-30 12:04:55 浏览: 69
std::array是一个类模板,它是一个固定大小的数组容器,它可以在编译时确定其大小。它提供了与C数组相同的访问和迭代功能,同时也提供了一些其他的便利功能,如大小的查询和元素的范围检查。
std::initializer_list是一个标准库类型,它是一个不可变的元素列表,可以用于初始化各种类型的对象,例如std::vector、std::map等。它可以在代码中使用花括号{}来创建。
std::array和std::initializer_list通常一起使用,例如:
```cpp
#include <array>
#include <iostream>
int main()
{
std::array<int, 3> arr = {1, 2, 3};
for (auto i : arr) {
std::cout << i << " ";
}
std::cout << std::endl;
std::initializer_list<int> initList = {4, 5, 6};
std::array<int, 3> arr2 = initList;
for (auto i : arr2) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
```
输出:
```
1 2 3
4 5 6
```
在这个例子中,我们首先创建了一个std::array对象arr,它包含3个整数。然后,我们使用std::initializer_list创建了一个包含3个整数的列表,将其分配给另一个std::array对象arr2。最后,我们输出两个std::array对象的内容,以确保它们包含相同的元素。