本文是Devour Heavens撰写整理的关于C++标准库的知识,所有资料均来自于C++官方文档,欢迎转载。但是为了尊重原作者的劳动,请注明出处!谢谢! 

模板类

array

template < class T, size_t N > class array;

Array

Arrays是固定大小的顺序容器:他们拥有一定数目的元素并整理成一个严格的线性序列。

在内部一个数组容器不保存任何数据,除了本身的数组元素之外(即使它的大小是一个模板参数)。

它与普通数组声明存储空间大小[]的方式是一样有效的。

Array类仅仅只是增加了一层全局函数,以使它可以像标准容器一样使用。

与其他标准容器不同,Array的大小是确定的而且不会通过分配的运算符管理元素。Arrays是一种聚集类型封装了一个确定大小的元素数组。因此,Arrays不可以动态地扩大或缩小(可以参看相似的vector容器其大小是可以扩大的)。

零大小的Arrays是有效的,但是不可以被成员函数front、back、data间接引用。

与其他标准库中的容器操作不同,交换两个数组容器是一次性的操作单独地包含范围内所有元素的交换操作,这通常来说是一种相当有效的操作。换而言之这样可以允许元素的迭代器可以保留两个数组容器原始关联。

另一个唯一的特性就是Array容器可以作为tuple类处理,头文件<array>中重载了get函数存取数组中的元素,如果它是tuple以及专门的tuple_size和tuple_element类型。

容器属性

序列

在一个严格的线性序列中序列容器的元素是有序的。个别元素的访问是通过他们在这个序列中的位置。

连续存储

元素是以连续的内存方式存储的,允许固定的时间随机访问元素。指向元素的指针可以偏移地址的方式访问其他元素。

固定大小的集合

容器使用默认的构造和析构函数静态地分配内存空间,其大小在编译时是不变的。没有内存和时间的开销。

模板参数

T

 所含元素的类型。作为成员类型forward_list:: value_type的别名。

N

 数组的大小,依据元素的个数。

在数组容器的成员函数的参考,这些相同的名称被假定为模板参数。

成员类型

下面的别名数组成员的类型。他们被广泛用作参数和返回类型的成员函数:


 

成员类型

定义

注释
value_typeThe first template parameter (T) 
referencevalue_type& 
const_referenceconst value_type& 
pointervalue_type* 
const_pointerconst value_type* 
iteratora random access iterator to value_typeconvertible to const_iterator
const_iteratora random access iterator to const value_type 
reverse_iteratorreverse_iterator<iterator> 
const_reverse_iteratorreverse_iterator<const_iterator> 
size_typesize_tunsigned integral type
difference_typeptrdiff_tsigned integral type

成员函数

迭代器

容量

元素存取

元素修改

全局函数

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐