C++ Reference: Standard C++ Library reference: Containers: array: array
admin
2024-03-23 03:58:48

C++官网参考链接:https://cplusplus.com/reference/array/array/

类模板 

std::array
template < class T, size_t N > class array;
数组类
数组是固定大小的顺序容器:它们按严格的线性顺序保存特定数量的元素。
在内部,数组除了它包含的元素之外不保留任何数据(甚至它的大小,这是一个模板形参,在编译时固定)。就存储大小而言,它与使用该语言的括号语法([])声明的普通数组一样高效。该类只是向其添加了一层成员函数和全局函数,以便将数组用作标准容器。
与其他标准容器不同,数组具有固定的大小,并且不通过分配器管理其元素的分配:它们是封装固定大小的元素数组的聚合类型。因此,它们不能动态地展开或收缩(有关可以展开的类似容器,请参阅vector)。
大小为0的数组是有效的,但不应该解引用它们(成员front、back和data)。
与标准库中的其他容器不同,交换两个数组容器是一种线性操作,涉及分别交换范围中的所有元素,这通常是一种效率相当低的操作。另一方面,这允许两个容器中元素的迭代器保持它们原始的容器关联。
数组容器的另一个独特特性是,它们可以被视为元组(tuple)对象:头文件重载get函数来访问数组的元素,就像它是一个元组(tuple)一样,以及专门化的tuple_size和tuple_element类型。

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

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

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

member typedefinitionnotes
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
const_reverse_iteratorreverse_iterator
size_typesize_tunsigned integral type
difference_typeptrdiff_tsigned integral type

成员函数 
迭代器 
begin    Return iterator to beginning (public member function)
end    Return iterator to end (public member function)
rbegin    Return reverse iterator to reverse beginning (public member function)
rend    Return reverse iterator to reverse end (public member function)
cbegin    Return const_iterator to beginning (public member function)
cend    Return const_iterator to end (public member function)
crbegin    Return const_reverse_iterator to reverse beginning (public member function)
crend    Return const_reverse_iterator to reverse end (public member function)

容量 
size    Return size (public member function)
max_size    Return maximum size (public member function)
empty    Test whether array is empty (public member function)

元素访问 
operator[]    Access element (public member function)
at    Access element (public member function)
front    Access first element (public member function)
back    Access last element (public member function)
data    Get pointer to data (public member function)

修改器
fill    Fill array with value (public member function)
swap    Swap content (public member function)

非成员函数重载 
get (array)    Get element (tuple interface) (function template)
relational operators (array)    Relational operators for array (function template)

非成员类特殊化 
tuple_element    Tuple element type for array (class template specialization)
tuple_size    Tuple size traits for array (class template specialization) 

相关内容

热门资讯

什么加咖啡 说起咖啡,不管你爱不爱喝,它都成了极受年轻人追捧的事物。在你家楼下,在窄巷的拐角处,甚至在乡村,咖啡...
原创 王... 王鸥在最近参与的综艺节目中,因为频繁在搜证环节掏出零食与同伴分享而引发了观众热烈讨论。有人注意到,她...
刘集黄酒,正在改写南阳黄酒产业... 刘集黄酒,正在改写南阳黄酒产业新格局 长期以来,南阳黄酒坐拥千年酿造文脉、成熟产区根基,却长期深陷发...
原创 国... 标题:国宴白菜清汤寡水?实则经历了无数道工序,每一道都很严谨 在探讨国宴上的白菜清汤时,我们可能会...
禾利生湿面批发的湿面,其营养成... 在当今的湿面市场中,禾利生湿面批发的湿面凭借其独特的优势和特点,吸引了众多消费者的关注。接下来,我们...