C++標準模板庫:08---順序容器array

array

 

一、特點

  • 總的來說:固定大小數組。支持快速隨機訪問。不能添加或刪除元素。
  • 是C++11標準新增的類型,設計的目的是:與內置數組相比,array是一個更安全、更容易使用的數組類型
  • array對象的大小是固定的,因此不能進行刪除、添加、以及改變容器大小等

 

二、頭文件、using聲明

  • 頭文件:#include <array>
  • using聲明:using std::array;

 

三、初始化

  • array<T,size>  v1; ==>v1是一個空的array(array已經分配了空間,但是沒初始化,都是垃圾值)
  • array<T,size> v2(v1); ===>v2是v1的副本,拷貝構造(v1和v2在定義時,<>內必須是相同的大小)
  • array<T,size> v2=v1; ===>同上(注意,=運算符只能用於此處,單獨拿出來用不行)
  • array<T,size> v1{a,b,c...}; ===>用元素a,b,c進行初始化
  • array<T,size> v1={a,b,c...}; ===>同上

 

四、相關操作

1.運算符

a1==a2;//判斷a1和a2是否相等
a1!=a2;//判斷a1和a2是否相等
>、>=、<、<= //以字典順序進行比較

2.取值

  • 索引取值:a[0],a[1],a[2]....

 

五、相關函數

  • array功能有限,只支持部分函數,且部分函數功能與其他容器函數功能不一樣
  • 因爲array是固定大小,所以插入刪除之類的函數都沒有
a.empty();//判斷是否爲空,返回布爾值
a.size();//返回容器中的元素個數
a.max_size();//返回容器的容量
a.front();//得到頭元素
a.back();//得到尾元素
a.at(int i);//得到下標i處的元素,若下標越界,會拋出異常
a.data();//獲取指向第一個數據的指針
//a1與a2必須是相同的大小
a1.swap(a2);//將a1和a2進行交換。容器的成員函數版本
swap(a1,a2);//同上。系統函數版本

a.assign(t);//將容器內的元素全部變爲t
a.fill(t);//將容器內的元素全部變爲t

六、使用

  • 使用時,必須指定大小
array<int, 3> a{1,2,3};
array<int, 3> b = { 1,2,3 };
  • 初始化之後,不能再進行賦值
array<int, 3> a{1,2,3};
a={4,5,6};//錯誤

 

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