類模板
<array>

std::array

template < class T, size_t N > class array;
陣列類
陣列是固定大小的序列容器:它們持有特定數量的、以嚴格線性序列排序的元素。

在內部,一個數組除了它包含的元素外,不儲存任何其他資料(甚至不包括它的大小,因為大小是一個模板引數,在編譯時就固定了)。就儲存大小而言,它和使用語言的方括號語法([])宣告的普通陣列一樣高效。這個類僅僅為它添加了一個成員函式和全域性函式的層,以便陣列可以作為標準容器使用。

與其他標準容器不同,陣列的大小是固定的,並且不透過分配器來管理其元素的分配:它們是一個封裝了固定大小元素陣列的聚合型別。因此,它們不能動態地擴充套件或收縮(對於可以擴充套件的類似容器,請參見 vector)。

零大小的陣列是有效的,但不應對其進行解引用(成員 frontbackdata)。

與標準庫中的其他容器不同,交換兩個陣列容器是一個線性操作,它涉及單獨交換範圍內的所有元素,這通常是一種效率相當低的操作。另一方面,這允許指向兩個容器中元素的迭代器保持其原始的容器關聯。

陣列容器的另一個獨特特性是它們可以被視為 tuple 物件:<array>標頭檔案過載了 get 函式,以便可以像訪問 tuple 一樣訪問陣列的元素,同時還特化了 tuple_sizetuple_element 型別。

容器屬性

序列
序列容器中的元素以嚴格的線性序列排序。單個元素透過其在此序列中的位置進行訪問。
連續儲存
元素儲存在連續的記憶體位置,允許對元素進行常量時間的隨機訪問。指向一個元素的指標可以透過偏移來訪問其他元素。
固定大小聚合
該容器使用隱式的建構函式和解構函式來靜態分配所需的空間。其大小是編譯時常量。沒有記憶體或時間開銷。

模板引數

T
所含元素的型別。
別名為成員型別array::value_type.
N
陣列的大小,以元素數量計。
array成員函式的參考文件中,假定模板引數使用這些相同的名稱。

成員型別

以下別名是array的成員型別。它們被成員函式廣泛用作引數和返回型別。

成員型別定義說明
value_type第一個模板引數 (T)
引用value_type&
const_referenceconst value_type&
指標value_type*
const_pointerconst value_type*
iterator一個指向value_type隨機訪問迭代器,可轉換為const_iterator
const_iterator一個指向const value_type
reverse_iteratorreverse_iterator<iterator>
const_reverse_iteratorreverse_iterator<const_iterator>
size_typesize_t無符號整型
difference_typeptrdiff_t有符號整型

成員函式

迭代器


容量


元素訪問


修改器


非成員函式過載


非成員類特化