C++_std::array用法


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容器成员函数汇总

成员函数功能

  1. begin()返回指向容器中第一个元素的随机访问迭代器。
  2. end()返回指向容器最后一个元素之后一个位置的随机访问迭代器,通常和 begin() 结合使用。
  3. rbegin()返回指向最后一个元素的随机访问迭代器。
  4. rend()返回指向第一个元素之前一个位置的随机访问迭代器。
  5. cbegin()和 begin() 功能相同,只不过在其基础上增加了 const 属性,不能用于修改元素。
  6. cend()和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。crbegin()和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
  7. crend()和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
  8. size()返回容器中当前元素的数量,其值始终等于初始化 array 类的第二个模板参数 N。
  9. max_size()返回容器可容纳元素的最大数量,其值始终等于初始化 array 类的第二个模板参数 N。
  10. empty()判断容器是否为空,和通过 size()==0 的判断条件功能相同,但其效率可能更快。
  11. at(n)返回容器中 n 位置处元素的引用,该函数自动检查 n 是否在有效的范围内,如果不是则抛出 out_of_range 异常。
  12. front()返回容器中第一个元素的直接引用,该函数不适用于空的 array 容器。
  13. back()返回容器中最后一个元素的直接应用,该函数同样不适用于空的 array 容器。
  14. data()返回一个指向容器首个元素的指针。利用该指针,可实现复制容器中所有元素等类似功能。
  15. fill(val)将 val 这个值赋值给容器中的每个元素。
  16. array1.swap(array2)交换 array1 和 array2 容器中的所有元素,但前提是它们具有相同的长度和类型。

文章作者: AllenMirac
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AllenMirac !
  目录