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 中没有元素,则返回 true。 std::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个元素。