vector,array和陣列的區別

2021-09-25 12:38:59 字數 629 閱讀 7216

相同點:

三者均可以使用下表運算子對元素進行操作,即vector和array都針對下標運算子進行了過載

三者在記憶體的方面都使用連續記憶體,即在vector和array的底層儲存結構均使用陣列

不同點:

vector屬於變長容器,即可以根據資料的插入刪除重新構建容器容量(1.5倍或者2倍);但array和陣列屬於定長容量。

vector和array提供了更好的資料訪問機制,即可以使用front和back以及at訪問方式,使得訪問更加安全。而陣列只能通過下標訪問,在程式的設計過程中,更容易引發訪問 錯誤。

vector和array提供了更好的遍歷機制,即有正向迭代器和反向迭代器兩種

vector和array提供了size和判空的獲取機制,而陣列只能通過遍歷或者通過額外的變數記錄陣列的size

vector和array提供了兩個容器物件的內容交換,即swap的機制,而陣列對於交換只能通過遍歷的方式,逐個元素交換的方式使用

array提供了初始化所有成員的方法fill

vector提供了可以動態插入和刪除元素的機制,而array和陣列則無法做到,或者說array和陣列需要完成該功能則需要自己實現完成

由於vector的動態記憶體變化的機制,在插入和刪除時,需要考慮迭代的是否失效的問題。

c 的vector array和陣列的比較

在c 11中,stl中提拱了乙個新的容器std array,該容器在某些程度上替代了之前版本的std vector的使用,更可以替代之前的自建陣列的使用。那針對這三種不同的使用方式,先簡單的做個比較 相同點 1.三者均可以使用下表運算子對元素進行操作,即vector和array都針對下標運算子進行了...

陣列和陣列函式

1 如果對全部元素賦初值 即提供全部初始資料 則定義陣列時對第一維的長度可以不指定,但第二維的長度不能省。2.gets 字元陣列 1 格式 gets 字元陣列名 2 作用 從終端輸入乙個字串到字元陣列,並且得 到乙個函式值。該函式值是字元陣列的首位址。gets函式這裡注意 如果和scanf s k ...

類陣列和陣列

類陣列,顧名思義,和陣列很像,但不是陣列,是乙個物件 理解 var obj 這個物件就能像陣列那樣取值 obj 0 aobj 1 bobj 2 3這就是類陣列,常見的類陣列有 函式的引數arugments,dom方法返回的結果 比如通過document.queryselectorall得到的列表 類...