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....