std::array用于表示固定大小的数组。

std::array<T, N>语义上等同于一个C语言风格数组T[N],但它不会自动退化为T*

array的size

std::array<T, N>的大小在编译时就已经确定。其大小等于sizeof(T) * N

array的构造函数

std::array<int, 5> arr1;

std::array<int, 5> arr2 {1, 2, 3};

std::array<int, 5> arr3 = {1, 2, 3, 4, 5};

std::array<int, 5> arr4(arr3);

std::array<int, 5> arr5 = arr4;

array的成员函数

访问

成员函数 函数说明
at(size_type n) 带有边界检查,返回对索引 n 处元素的引用。如果索引越界,则抛出 std::out_of_range 异常。
operator[](size_type n) 返回对索引 n 处元素的引用。不执行边界检查,速度更快。
front() 返回对第一个元素的引用。
back() 返回对最后一个元素的引用。
T* data() 返回指向底层数组的指针。

容量

成员函数 说明
empty() 如果 array 中没有元素,则返回 truestd::array 的大小在编译时确定,所以此函数总是返回 false,除非 N=0
size() 返回 array 中元素的数量。
max_size() 返回 array 可以容纳的最大元素数量,与 size() 相同。

操作

成员函数 说明
fill(const T& value) 用指定值 value 填充整个 array
swap(array& other) 与另一个 array 交换内容。

迭代器

成员函数 说明
begin() 返回指向 array 第一个元素的迭代器。
end() 返回指向 array 最后一个元素之后位置的迭代器。
rbegin() 返回指向 array 最后一个元素的反向迭代器。
rend() 返回指向 array 第一个元素之前位置的反向迭代器。
cbegin() 返回指向 array 第一个元素的 const 迭代器。
cend() 返回指向 array 最后一个元素之后位置的 const 迭代器。
crbegin() 返回指向 array 最后一个元素的 const 反向迭代器。
crend() 返回指向 array 第一个元素之前位置的 const 逆向迭代器。

array的非成员函数

  • get<idx>(arr):返回arr的第idx个元素。