概述
C++的array是一种具有固定大小的容器类,与内置数组特点相似(随机访问、大小固定等),可以说这是C++风格的数组,T[]是C风格的数组。
不像C风格数组,array无法自动转换为array*。由于array大小固定,因此不支持普通的容器构造函数,这些构造函数都会确定容器的大小,要目隐式地,要么显式地。array的构造函数需要指定大小,因为大小也是其类型的一部分。内置数组无法做到的是,两个array对象之间可以赋值,只要两个对象的元素类型和长度都相同。std::array<int, 3> ai;//创建一个具有3个元素的array
array满足容器和反向容器的定义,除了其默认构造函数不能为空以外。有一个特殊的例外,存在一种长度为0的array,在这种情况下,array.begin() == array.end()。对这种array使用front()和back()的后果是未知的。
元素访问
array有与C风格数组一样的元素访问方式,同时还具有其特殊的访问方式。其函数成员有array.at(size_type n)、array.front()、array.back()、array.data()。#include <iostream>
#include <array>
int main()
{
std::array<int, 3> i