vector 與deque list 之間的區別

2021-09-29 17:32:12 字數 490 閱讀 9596

vector與deque之間的區別?

vector

deque

底層資料結構

動態陣列

動態開闢的二維陣列空間

前插入刪除元素時間複雜度 [中間和末尾的刪插 都是o(1)]

o(n)

o(1)

對於記憶體的使用效率

需要連續的記憶體空間

可以分塊資料儲存,不需要連續的記憶體空間

在中間進行insert或者erase的效率 [時間複雜度都是o(n)]

better(記憶體連續)

worse(第二維記憶體空間不是連續的)

vector和list之間的區別? (陣列與鍊錶之間的區別)

vector

list

底層資料結構

動態陣列

雙向迴圈鍊錶

時間複雜度

新增 刪除 查詢 o(n) 隨機訪問 o(1)

新增 刪除[單步操作] o(1) 查詢 o(n)

vector與list與deque比較

vector 表示一段連續的記憶體區域每個元素被順序儲存在這段記憶體中對vector 的隨機 訪問比如先訪問元素5 然後訪問15 然後再訪問7 等等效率很高因為每次訪問離vector 起始處的位移都是固定的但是在任意位置而不是在vector 末尾插人元素則效率很低 因為它需要把待插入元素右邊的每個元...

vector與list的區別

vector與list差異點與優缺點 1 vector動態增長 不是隨著每個元素的插入而自己增長的。預先存了一些儲存區,使得實際分配的空間比當前所需的空間多一些,而list 表示非連續的記憶體區域,並通過一對指向首位元素的指標雙向鏈結起來,因而可以兩個方向進行遍歷。2 當從vector末端刪除元素的...

vector清空與容量處理

vector的clear操作可以將vector的資料清空,但是vector的容量不會變化,即分配給vector的記憶體不會收回。如果想收回這些記憶體,可以採取下面的方法 vectornum num.push back 1 num.push back 2 vector swap num 或者 num....