简介
array在头文件 中定义
namespace std
{
template<class T, size_t N>
class array;
}
array是固定元素个数的容器,与相应C数组的语义相同,容器array< T,N> 的大小等于相应C数组T[N]的大小,且性能也与C数组相同。但是它提供了C++标准容器的相应特性,如可以查询容器大小,支持复制,支持随机迭代器等等。不支持设置分配器。
对于长度为0的std::array< T,0>存在一个特例。此时array.begin() == array.end(),且等于某个特定值。对这种array调用front()或back()的行为是未定义的。
array是一个简单集合(没有构造函数,也没有私有或保护成员),同时也可以当作一个有N个相同类型元素的tuple。
数组操作
构造、复制与析构
array<Elem,N> c //默认构造函数; 创建一个默认初始化的数组
array<Elem,N> c(c2) //复制构造函数; 创建另一个与c2同型的vector副本(所有元素都被复制)
array<Elem,N> c = c2 //复制构造函数; 创建另一个与c2同型的vector副本(所有元素都被复制)
array<Elem,N> c(rv) //移动构造函数; 拿走右值rv的元素创建一个新的数组
array<El