C++ 補充 & C++ 11 - array容器用法

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章