1、std::array<> 容器:
标准库定义的容器:std::array<>。可作为 C++ 语言内置的普通数组的直接替代品,使用起来更容易、更安全,并且相比低级的内置数组能提供更大的灵活性。
array<T, N>容器在 array 头文件定义,所以必须在源文件中包含这个头文件,才能使用容器类型。
array<T, N>容器是类型为 T 的 N 个元素的固定序列,所以它很像普通数组,只是类型和大小的指定略有区别。
下面创建了一个 array<> 容器,它包含 double 类型的 100 个元素:
std::array<double, 100> values;
参数 N 必须指定为一个常量表达式,这与普通数组一样。
2、初始化:
std::array<double, 100> values {0.5, 1.0, 1.5, 2.0};
使用 array<> 对象的 fill() 函数可以把所有元素设置为某个给定的值。例如:
values.fill(3.14159265358979323846);
3、访问各个元素:
使用索引可以访问和使用元素,其方式与标准数组相同,例如:
valuse[4] = values[3] + 2.0*values[1];
下面是另外一个例子,可计算 values 对象中所有元素的和:
double total {};
for (size_t i {}; i < values.size(); ++i)
{
total += values[i];
}
array<> 对象是一个范围, 所以可以使用基于范围的 for 循环计算元素之和:
double total {};
for (auto value: values)
{
total += value;
}
4、 array<> 上的操作:
只要容器的大小相同, 存储相同类型的元素,就可以使用任意比较运算比较整个 array<>容器。
5、结论:
应该在代码中优先使用 array<> 容器而不是标准数组。