2020-10-26

STL array

template <class T, size_t N> array;

介绍

arrays是固定的s序列容器,它盛放特定数目的按现行顺序排列的序列。
在内部,arrays的成员只s有它盛放的元素,(甚至没有它的尺寸,这是在编译时就固定下来的)就存储的尺寸而言,它与用标准语法[]声明的数组一样有效,这个类仅仅对它添加了一层成员和全局函数,因此可被用作标准容器。
不像其他的标准容器,arrays有一个固定的尺寸而且不适用分配器来管理元素的内存分配:它们是合并的类型包含在一个固定尺寸的数组中。因此,它们不能被动态的扩张或合并。
尺寸为0的arrays是允许的,但是不能读取元素。
不像标准库中的其它容器,交换arrays中的两个元素是一个线性操作(需要依次交换范围中的每个元素)。另一方面,这允许了两个容器的迭代器可以保持关联(这句话不太懂)。
另一个独特的特点是arrays可以像元组一样对待,< array >头文件重载了get函数来像元素一样获取arrays中的元素,而且指定了tuple_size和tuple_element两个类型。

容器属性

  1. 顺序性
    容器中的每个元素按照严格的线性顺序排序,通过位置来读取每个元素的值。

  2. 连续存储
    arrays中的元素被存储在连续的内存空间中,使得元素的随机读取操作为常数时间,一个元素的指针也可以用作读取元素的偏移量。

  3. 固定尺寸
    容器使用内含的构造函数和析构函数静态的分配空间,它的尺寸在编译时确定为一个常量,没有内存和时间开销。

模板参数

T: 内部元素的类型,别名为array::value_type
N: array的尺寸,元素的个数。

成员类型

下面的别名是array成员的类型,它们被广泛用作成员函数的参数和返回值。

成员类型定义备注
value_type第一个模板参数
referencevalue_type&
const referenceconst value_type&
poitervalue_type*
const poiterconst value_type*
iterator一个对value_type的随机读取迭代器可转换为const iterator
reverse_iteratorreverse_iterator< iterator >
const reverse_iteratorconst reverse_iterator< iterator >
size_typesize_t无符号整型
difference_typeptrdiff_t有符号整型

成员函数

迭代器
begin() end() rbegin() rend() cbegin() cend() crbegin() crend()
容量
size()
max_size()
empty()
成员读取
operator[]
at()
front()
back()
data()
元素操作
void fill(const value_type&)
void swap (array& x) noexcept(noexcept(swap(declval<value_type&>(),declval<value_type&>())));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值