原生数组使用起来有很多不方便,比如将数组作为参数传递,数组会退化为指针,必须再传递一个长度等
C++11引入了array容器来代替内置数组。
std::array除了有内置数组,
它支持随机访问、效率高、存储大小固定等特点外,还支持迭代器访问、获取容量、获得原始指针等功能
使用
- 头文件
- 定义
std::array<int, 5> a0 = {0, 1, 2, 3, 4};
其中模板的第一个参数是类型, 第二个参数是数组的长度, 长度不可以是变量,可以使字面量或常量。
可以使用{}来直接初始化,也可以使用另外的array来构造,但不可以使用内置数组来构造。 - 访问元素
它提供了[]、at、front、back、data
这几个函数来访问元素, data是用来获取第 0 个元素的地址, 也就是数组首地址;
和别的容器一样,array也可以使用迭代器访问,begin(), rbegin(), end(), rend();
- 获取size
array传递给函数时不会退化为指针, 可以直接通过 size()成员函数获取数组的大小; 成员函数
empty 检查容器是否为空 size 返回容纳的元素数 max_size 返回可容纳的最大元素数, 在array里,值与size相同 fill 以指定值填充容器 swap 交换内容