C 陣列array與vector的比較

2021-05-22 13:01:08 字數 605 閱讀 9308

1. 陣列的為數必須用 值大於等於1的常量表示式定義,且只能包含整型字面值常量,列舉常量或者用常量表示式初始化的整型const物件,非const變數以及需要到執行階段才知道其值的const變數都不能用來定義陣列的維度;

2. 陣列的維度必須用 內指定;

3. 顯示初始化陣列元素的時候用 {} 括起來,成為初始化列表;不管陣列在**定義,如果其元素為類型別,則自動呼叫該類的預設建構函式進行初始化,如果該類沒有預設建構函式,則必須為該陣列 的元素提供顯式初始化;在函式體外定義的內建陣列,其元素全部初始化為1,在函式體內定義的內建陣列,無初始化。

4. 如果指定了陣列維度,初始化的元素個數不能超過維數值;若小於,內建型別則初始化為0,類型別則呼叫該類的預設建構函式進行初始化。

5. 陣列和vector不同,乙個陣列不能用另乙個陣列初始化,也不能將乙個陣列賦值給另乙個陣列;

6. 和vector不同,陣列不提供 push——back或者其他的操作在陣列中新增新元素,陣列一經定義就不允許新增新元素;若需要則要充許分配新的記憶體空間,再將員陣列的元素賦值到新的記憶體空間。

7. 在用下標訪問元素時,vector 使用 vector::size_type 作為下標的型別,而陣列下標的正確型別則是 size_t;

C 陣列array與vector的比較

vector 是stl中的容器類,包含多種通用演算法 長度可變,使用靈活,但效率稍低 vector是使用 new 和 delete 來管理記憶體的 1 array 定義的時候必須定義陣列的元素個數 而vector 不需要 且只能包含整型字面值常量,列舉常量或者用常量表示式初始化的整型const物件,...

c 中的array陣列和vector陣列

我覺得實驗一下會記得比較牢,話不多直接上 下面是array陣列,感覺用的不多。cpp 風格陣列 array include include include using namespace std intmain for int i 0 i myint.size i size 獲取長度,vector也...

比較陣列,模板array和模板vector

先上簡單的乙個例項 include include include int main c 98 stl vectora2 4 creat vector with 4 elements no way to initinaize in c98 a2 0 1.0 3.0 a2 1 1.0 5.0 a2 2...