Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

array

类模板   <array>

template & class T, size_t N > class array;
数组类

数组是固定大小的序列容器:它们保存特定数量的按严格线性顺序排列的元素。

在内部,模板数组不保留除其包含的元素以外的任何数据(甚至不保留它的大小,它是一个模板形参,在编译时固定)。 就存储大小而言,它与用语言的括号语法([])声明的普通数组一样有效。 这个类只添加了成员模板类型和全局函数,这样数组就可以用作标准容器。

与其他标准容器不同,数组具有固定的大小,并且不通过分配器管理其元素的分配: 它们是封装固定大小的元素数组的聚合类型. 因此,它们不能被动态地扩展或缩减(有关可以扩展的类似容器,请参阅vector)。

零大小的数组是有效的,但不应该对它们进行解引用(front, back, 和 data)。

与标准库中的其他容器不同,交换两个数组容器是一个线性操作,涉及每个交换范围内的所有元素, 这是一个效率低下的操作。 但是,这样会使两个容器中的元素迭代器保持它们与原来的容器关联。

数组容器的另一个独特特性是,它们可以被视为元组对象: <array> 头文件重载get函数,以像访问元组一样访问数组的元素, 以及专门的tuple_size和tuple_element类型。

☲  容器特性


顺序排列
序列容器中的元素按照严格的线性顺序排列。每个元素根据它们在这个序列中的位置来访问。
内存连续
元素存储在连续的内存位置,允许对元素随时随机访问。 指向一个元素的指针可以被偏移以访问其他元素。
固定大小
容器使用隐式构造函数和析构函数静态地分配所需的空间。它的大小是编译时常量。没有内存或时间开销。

☲  模板参数


T
所包含元素的类型。
成员类型的别名 array::value_type。
N
数组的大小,表示元素的数量。
在 array成员函数的引用中,模板形参也假定有相同的名称。

☉  成员类型



以下是数组的成员类型。它们被成员函数用作形参和返回类型:
成员类型 定义 注释
value_type 起始模板参数(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 一个随机访问迭代器,可转换为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 无符号整型
difference_type ptrdiff_t 有符号整型

☞ 成员函数



迭代器:
begin 返回一个指向数组开头的迭代器 (公众成员函数)
end 返回一个指向数组末尾元素的下一个元素的迭代器 (公众成员函数)
rbegin 返回指向数组最后一个元素的反向迭代器 (公众成员函数)
rend 返回指向数组开始元素之前的理论元素的反向迭代器(公众成员函数)
cbegin 返回一个指向数组开头的常量迭代器 (公众成员函数)
cend 返回一个指向数组末尾元素的常量迭代器 (公众成员函数)
crbegin 返回指向数组最后一个元素的常量反向迭代器(公众成员函数)
crend 返回指向数组开始元素的常量反向迭代器(公众成员函数)
容量:
size 返回大小 (公众成员函数)
max_size 返回最大长度 (公众成员函数)
empty 测试数组是否为空 (公众成员函数)
元素访问:
operator[] 访问元素(公众成员函数)
at 访问元素(公众成员函数)
front 访问首元素(公众成员函数)
back 访问最后一个元素(公众成员函数)
data 获取数据指针(公众成员函数)
修改器:
fill 用值填充数组(公众成员函数)
swap 交换内容(公众成员函数)

☣ 非成员函数重载



get (array) 获取元素(元组接口)(函数模板)
relational operators (array) 数组的关系运算符(函数模板)

🍄 非成员类特化



tuple_element<array> 数组的元组元素类型(类模板特化 )
tuple_size<array> 数组的元组大小特征(类模板特化 )

联系我们 免责声明 关于CandCplus 网站地图