C++11 新增容器 - array
array容器概念
array 容器是 C++ 11 標準中新增的序列容器,簡單地理解,它就是在 C++ 普通數組的基礎上,添加了一些成員函數和全局函數。
array是將元素置於一個固定數組中加以管理的容器。
array可以隨機存取元素,支持索引值直接存取, 用[]操作符或at()方法對元素進行操作,也可以使用迭代器訪問
不支持動態的新增刪除操作
array可以完全替代C語言中的數組,使操作數組元素更加安全!
#include array
array特點
array 容器的大小是固定的,無法動態的擴展或收縮,這也就意味着,在使用該容器的過程無法增加或移除元素而改變其大小,它只允許訪問或者替換存儲的元素。
STL 還提供有可動態擴展或收縮存儲空間的 vector 容器
array對象的構造
array採用模板類實現,array對象的默認構造形式
array<T,int> arrayT; //T爲存儲的類型, 爲數值型模板參數
//構造函數
array<int, 5> a1; //一個存放5個int的array容器
array<float, 6> a2; //一個存放6個float的array容器
array<student, 7> a3; //一個存放7個student的array容器
array的賦值
array 的賦值
a1.assign(0); //玩法一 改變array中所有元素(注:將被廢棄,不推薦使用)
a1.fill(666); //玩法二 用特定值填充array中所有元素
array<int, 4> test={1, 2, 3, 4};// 玩法三 定義時使用初始化列表
array<int, 4> test;
test={1,2,3,4}; //玩法四 定義後使用列表重新賦值
array<int, 4> a1,a2;
a1={1,2,3,4};
a2 = a1;//玩法五,賦值運算
a1.swap(a2); //玩法六 和其它array進行交換
array的大小
array.size(); //返回容器中元素的個數
array.empty(); //判斷容器是否爲空,逗你玩的,永遠爲 false
array.max_size(); //返回容器中最大元素的個數,同size()。
array的數據存取
第一 使用下標操作 a1[0] = 100;
第二 使用at 方法 如: a1.at(2) = 100;
第三 接口返回的引用 a1.front() 和 a1.back()
注意: 第一和第二種方式必須注意越界
array 迭代器訪問
array.begin(); //返回容器中第一個數據的迭代器。
array.end(); //返回容器中最後一個數據之後的迭代器。
array.rbegin(); //返回容器中倒數第一個元素的迭代器。
array.rend(); //返回容器中倒數最後一個元素的後面的迭代器。
array.cbegin(); //返回容器中第一個數據的常量迭代器。
array.cend(); //返回容器中最後一個數據之後的常量迭代器。
array.crbegin(); //返回容器中倒數第一個元素的常量迭代器。
array.crend(); //返回容器中倒數最後一個元素的後面的常量迭代器。
array<int, 5> arrayInt = {1, 2, 3, 4, 5};
//順序輸出 1 2 3 4 5
for(array<int, 5>::iterator it=arrayInt .begin(); it!=arrayInt .end(); ++it)
{
int elem = *it;
cout << elem; //或直接使用cout << *it
}
set.rbegin()與set.rend()。略。
結語:
時間:2020-07-01