Array简介
std::array
is a container that encapsulates fixed size arrays.
Defined in header [<array>](https://en.cppreference.com/w/cpp/header/array)
template<
class T, std::size_t N > struct array;(since C++11)
它是c++里面的一个容器,在使用上与普通数组相似,但是它的大小是固定的,无法像vector一样动态扩展,安全性上面也比普通数组更加安全 。
初始化方式
array<int, 10> arr={1, 2, 3, 4, 5};
在这里,只初始化了数组的前五个值,后面的五个值都是0。
#include <iostream>
#include <array>
using namespace std;
int main() {
array<int, 10> a = { 1, 2 ,3, 4, 5 };
for (int i = 0; i < 10; i++)
{
cout << a.at(i) << " ";
}
return 0;
}
输出:
array容器成员函数汇总
成员函数功能
- begin()返回指向容器中第一个元素的随机访问迭代器。
- end()返回指向容器最后一个元素之后一个位置的随机访问迭代器,通常和 begin() 结合使用。
- rbegin()返回指向最后一个元素的随机访问迭代器。
- rend()返回指向第一个元素之前一个位置的随机访问迭代器。
- cbegin()和 begin() 功能相同,只不过在其基础上增加了 const 属性,不能用于修改元素。
- cend()和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。crbegin()和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
- crend()和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
- size()返回容器中当前元素的数量,其值始终等于初始化 array 类的第二个模板参数 N。
- max_size()返回容器可容纳元素的最大数量,其值始终等于初始化 array 类的第二个模板参数 N。
- empty()判断容器是否为空,和通过 size()==0 的判断条件功能相同,但其效率可能更快。
- at(n)返回容器中 n 位置处元素的引用,该函数自动检查 n 是否在有效的范围内,如果不是则抛出 out_of_range 异常。
- front()返回容器中第一个元素的直接引用,该函数不适用于空的 array 容器。
- back()返回容器中最后一个元素的直接应用,该函数同样不适用于空的 array 容器。
- data()返回一个指向容器首个元素的指针。利用该指针,可实现复制容器中所有元素等类似功能。
- fill(val)将 val 这个值赋值给容器中的每个元素。
- array1.swap(array2)交换 array1 和 array2 容器中的所有元素,但前提是它们具有相同的长度和类型。