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个元素。