STL::array之数组容器
本文是Devour Heavens撰写整理的关于C++标准库的知识,所有资料均来自于C++官方文档,欢迎转载。但是为了尊重原作者的劳动,请注明出处!谢谢! 模板类arraytemplateclass array;ArrayArrays是固定大小的顺序容器:他们拥有一定数目的元素并整理成一个严格的线性序列。在内部一个数组容器不保存任何数据,除了本身的数组元素之外(即使它的
本文是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_type | The first template parameter (T) | |
reference | value_type& | |
const_reference | const value_type& | |
pointer | value_type* | |
const_pointer | const value_type* | |
iterator | a random access iterator to value_type | convertible to const_iterator |
const_iterator | a random access iterator to const value_type | |
reverse_iterator | reverse_iterator<iterator> | |
const_reverse_iterator | reverse_iterator<const_iterator> | |
size_type | size_t | unsigned integral type |
difference_type | ptrdiff_t | signed integral type |
成员函数
迭代器
-
begin
- 返回的迭代器开始(公有成员类型)
-
end
- 返回的迭代器结束(公有成员类型)
-
rbegin
- 返回逆向迭代器的反向的开始(公共成有函数)
-
rend
- 返回逆向迭代器的反向结束(公有成员函数)
-
cbegin
- 返回常量迭代器的开始(公有成员函数)
-
cend
- 返回常量迭代器的结束(公有成员函数)
-
crbegin
- 返回逆向常量迭代器的反向开始(公有成员函数)
-
crend
- 返回逆向常量迭代器的反向结束(公有成员函数)
容量
-
size
- 返回数组容器的大小(公有成员函数)
-
max_size
- 返回数组容器的最大值(公有成员函数)
-
empty
- 测试数组容器是否为空(公有成员函数)
元素存取
-
operator[]
- 访问元素(公有成员函数)
-
at
- 访问元素(公有成员函数)
-
front
- 访问第一个元素(公有成员函数)
-
back
- 访问最后一个元素(公有成员函数)
-
data
- 获得指向容器数据的指针(公有成员函数)
元素修改
-
fill
- 填充数组值(公有成员函数)
-
swap
-
交换内容(公有成员函数)
全局函数
-
get (array)
- 获取元素(元组接口)(函数模板)
-
operators (array)
- 数组容器的全局关系运算函数(函数模板)
更多推荐
所有评论(0)