vector list 和deque的優缺點

2021-04-22 09:57:24 字數 563 閱讀 6893

vector表示一段連續的記憶體區域,隨機訪問效率很高,因為每次訪問離起始處的位移都是固定的,但是在隨意位置插入刪除元素效率很低,因為它需要將後面的元素複製一遍。

list表示非連續的記憶體區域,並通過一對指向首尾元素的指標雙向鏈結起來,從而允許向前和向後兩個方向進行遍歷。在list的任意位置插入和刪除元素的效率都很高:指標必須被重新賦值,但不需要用拷貝元素來實現移動。他對隨機訪問支援不好,需要遍歷中間的元素。每個元素有兩個指標的額外空間開銷。

deque(雙端佇列,發音為"deck")也表示一段連續的記憶體區域,但是它支援高效的在其首部插入和刪除元素。

選擇順序容器型別的一些準則

如果我們需要隨機訪問乙個容器,則vector要比list好得多。

如果我們一直要儲存元素的個數,則vector又是乙個比list好的選擇。

如果我們需要的不只是在容器兩端插入和刪除元素,則list顯然比vector好。

除非我們需要在容其首部插入和刪除元素,否則vector要比deque好。

vector,list和map的構造

vector vector可能是應用最廣泛的容器類。vector支援動態陣列,即可以依據需要擴充的陣列。在c 中,乙個陣列的大小在編譯時就已確定了,這是應用陣列最有效的途徑,也是限制性最大的方法,程式無法在執行時調節陣列的大小來適應變化的程式條件。vector容器通過依據需要分配記憶體解決了這一問題...

Vector , list 和 deque的區別

vector 表示一段連續的記憶體區域,每個元素被順序儲存在這段記憶體中,對vector 的隨機訪問效率很高,但對非末尾元素的插入和刪除則效率非常低。deque 也表示一段連續的記憶體區域,但與vector不同的是它支援高效地在其首部插入和刪除元素,它通過兩級陣列結構來實現,一級表示實際的容器,第二...

STL順序容器vector,list和deque

順序容器是通過將指定型別的元素按照位置順序進行儲存和訪問的一種容器型別.stl標準庫中的順序容器有三種 vector,list,和deque double ended queue雙端佇列,讀 d k 三個容器對應的標頭檔案 include include include一,容器的通用建構函式,假設容...