如何正確使用vector,list,deque ?

vector:爲存儲的對象分配一塊連續的地址空間,因此vector中的數據隨機訪問率非常高,在vector中插入或者刪除某個元素,需要複製,移動原來的元素;如果vector中存儲的對象很大,或者邏輯非常複雜時,複製對現有元素的開銷較大,因爲拷貝對象時需要調用拷貝構造函數;vector每次擴張容量時,可以將容量擴張2倍,這對於一般的小容量對象來說效率是比較高的;所以對於簡單的小對象vector的效率高於list。
list:中的對象是離散存儲的,當隨機訪問某個元素時,需要遍歷這個list,在list中插入元素,尤其是在首尾插入,效率是比較高的,只需要改變的指針。
deque:它也表示一段連續的地址空間,它與vector不同的是它支持高效的首部插入和刪除數據;它通過兩級數據結構來實現,一級表示數據的容器,二級表示指向容器的首和尾。
vector和list的適用範圍:
vector:它適用於簡單的對象變化數量小,隨機訪問頻繁
list:它適用於對象變化數量大,對象複雜,頻繁的插入刪除
vector和list區別:
vector的數據結構是單向的,list的數據結構是雙向的。
所以,在選擇使用那個作爲存儲結構時,對應自己的數據特點選擇適用自己的存儲結構,好的存儲結構,可以達到事半功倍的效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章