C++/STL/Array

维基教科书,自由的教学读本
< C++

<array>b:C++標準程式庫中的一個b:头文件,定义了b:C++标准中数组容器的类模板。 相当于C与C++的元素个数固定的传统数组类型。因此,其使用的内存空间在栈上分配,可用于constexpr或者函数的返回值。

模板类[编辑]

template<class Ty, std::size_t N>      class array;
template<int Idx, class Ty, std::size_t N> class tuple_element<Idx, <array<Ty, N> > {typedef Ty type;};  // 获取了array的元素的类型
template<class Ty, std::size_t N>  class tuple_size<array<Ty, N> > {static const unsigned value = N;};   // 获取了array的元素个数

成员类型[编辑]

成员类型 定义 注释
value_type 第一个模板参数(T)
reference value_type&
const_reference const value_type&
pointer allocator_traits<allocator_type>::pointer 对于缺省分配器为value_type*
const_pointer allocator_traits<allocator_type>::const_pointer 对于缺省分配器为const value_type*
iterator 指向value_type的前向迭代器 可转换为const_iterator
const_iterator 指向const value_type的前向迭代器
difference_typ 有符号的整形,即iterator_traits<iterator>::difference_type 通常为 ptrdiff_t
size_type 可表示difference_type的任何非负值的无符号整形 通常为size_t
const_reverse_iterator
reverse_iterator

成员函数[编辑]

  • (constructor) 构造函数
  • (destructor) 析构函数
  • operator= 拷贝赋值运算符、移动赋值运算符、初始化器运算符
  • 迭代器
    • begin 返回指向开始位置的迭代器
    • end 返回指向结束位置的迭代器
    • cbegin 返回指向开始位置的const迭代器
    • cend 返回指向结束位置的const迭代器
    • crbegin
    • crend
    • rbegin
    • rend
  • 容量Capacity
    • size 返回容器的容量
  • 成员访问(Element access)
    • operator[] 访问指定位置的元素,无边界检查
    • at 访问指定位置的元素,有边界检查
    • data 返回第一个元素的地址
    • front 返回第一个成员的引用
    • back 返回最后一个成员的引用
  • 修改器(Modifier)
    • operator= 赋值替换全部内容
    • assign 赋值替换全部内容
    • fill 用指定值替换所有元素
    • swap 交换两个容器的内容

重载的非成员函数模板[编辑]

  • 比较两个前向链表的关系运算符函数模板
    • bool operator==(lhs, rhs),两个链表的对应成员两两比较
    • bool operator!=(lhs, rhs)
    • bool operator<(lhs, rhs),两个链表的对应成员做词典(lexicographical)比较
    • bool operator>(lhs, rhs)
    • bool operator<=(lhs, rhs)
    • bool operator>=(lhs, rhs)
  • swap (lhs, rhs) 交换两个vector对象的内容
  • get 获取指定下标的元素的值

参考文献[编辑]

页面Template:ReflistH/styles.css没有内容。