STL容器 array陣列

2021-10-08 21:36:29 字數 1236 閱讀 1222

前言:

c++11中引入了array容器,array是序列容器的一種。array很類似於一般的陣列,例如,array在棧上分配連續的記憶體來儲存元素,並且array的大小是不可以改變的,這也就是說,可以修改array中元素的值,但不能向array中插入和刪除元素

其次:array是原生陣列的封裝,它存放於棧上且大小固定,效能也與之相同。在原生陣列的基礎上,它新增了範圍檢查,以及其它的stl的相應特性,比如複製、交換、迭代器、查詢大小。

初始化array陣列沒有建構函式,也沒有私有或保護成員,這就意味著它不會自動初始化。如果不對其初始化而直接獲取其中的值,讀出來的是不確定的值。

所以我們在定義的時候就直接初始化,這樣是最好的,或者用fill函式進行填充

#include

using std::array;

intmain()

;

array<

int,

5> arr2 =

;

array<

int,

10> arr3;

arr3.

fill(0

);//可以用fill函式對其填充

return0;

}

交換兩個陣列

array陣列最有意思的就是兩個具有相同型別且元素個數也一樣的,可以直接交換兩個陣列。

如:

array<

int,

5> arr1 =

;array<

int,

5> arr2 =

;array<

int,

5> arr3 = arr1;

// arr3 包含:1 2 3 4 5

arr3 = arr2;

// arr3 包含:5 4 3 2 1

//還可以用swap函式進行交換

arr1.

swap

(arr2)

;swap

(arr1,arr2)

;

遍歷

可以用operator和at()對元素隨機訪問,兩者都帶範圍檢查。也可以直接使用迭代器,或者範圍for語句。

for

(int i=

0;i++i)

STL基礎 容器array

array只是把c風格的array做了一下class的封裝。與array基本無差異。arrayc default建構函式,建立乙個array帶有default initalized元素 arrayc c1 copy建構函式 arrayc c1 copy建構函式 arrayc move c1 move...

(三)STL序列容器(array)

1.std array arr 建立10個浮點型元素,但是未顯示指定10個元素的值,因此各個元素的值是不確定的,array容器是不會做預設初始化操作 2.std array arr 所有元素預設初始化為0.03.std array arr 只初始化了前4個元素,剩餘的元素都被初始化為0.0 incl...

Go容器 陣列 array

變數在一定程度上能滿足函式及 的要求。如果編寫一些複雜演算法 資料結構和邏輯,就需要更複雜的型別來實現。這類複雜型別一般情況下具有各種形式的儲存和處理資料的功能,將它們稱為 容器 陣列是一段固定長度的連續記憶體空間,由若干相同資料型別的元素組成的序列。在go語言中,陣列的大小在宣告時就固定下來,使用...