std::array

默认分类 · 2024-05-27 · 68 人浏览

原生数组使用起来有很多不方便,比如将数组作为参数传递,数组会退化为指针,必须再传递一个长度等
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     交换内容
Theme Jasmine by Kent Liao