C 中陣列和容器的區別與聯絡

2021-07-09 10:13:28 字數 448 閱讀 9252

建立方式:

建立陣列時必須指定其大小;

而容器不必指定,可動態改變其大小。

儲存方式:

陣列在記憶體空間上是連續儲存的;

而容器中順序容器vector和deque是連續儲存的(deque與vector 不同的是它支援高效地在其首部插入和刪除元素),但list是鏈式儲存的。

訪問效率:

訪問陣列元素時可根據陣列下標直接訪問相應位置的元素;而容器中順序容器vector和deque支援對元素的隨機訪問(也支援下標訪問元素,或at()函式,如ivec.at(5)返回容器ivec中第6個元素),但list不支援。

元素操作:

list支援在容器中間位置插入或刪除元素,而其他的不支援。

(待續。。。歡迎指正~~)

golang中陣列和切片的區別與聯絡

golang中陣列和切片的區別 切片時指標型別,陣列是值型別 陣列的長度是固定的,而切片不是 切片是動態的陣列 切片比陣列多乙個屬性 容量 cap 切片的底層是陣列 既然乙個是指標型別,乙個是值型別,那麼區別體現在 呢?看下這個例子 numbers int for i,e range numbers...

陣列與指標區別和聯絡

在函式中陣列退化為指標 int ar int n sizeof ar sizeof ar 0 ar 0 100 ar 0 100 for int i 0 iprintf d d d n ar i ar i i ar ar i ar i i ar 輸出三列相同的值 int p ar 正確 int p ...

陣列和指標的區別與聯絡

區別 c語言把記憶體劃分成四個區,它把一般的變數和陣列等存在於記憶體中的棧區,所以陣列在c語言的定義中只是一組同型別的普通變數,即使這個變數有可能是指標。所以他的作用比指標小的很多,而指標可以指向任何區的任何資料,所以就會覺得指標和陣列名很像,但是必須要注意的是,陣列名只是指標中的一種,它是指標中只...