STL的deque類

1.概念.這是一種隨機訪問的容器。用於快速的實現尾部和頭部的插入和刪除,而vector只在尾部插入和刪除纔是高效的.deque的物理存儲結構如圖


|---|                    中心
| 0 |---> +---------------+--------------+
|---|      <--放到頭部       放到尾部--->
| 1 |---> +------------------------------+
|---|       放到尾部-->      <--放到頭部


從上面的圖形可以看出,deque在執行push_back push_front時會預先分配一定數量的內存,而在pop時並不會移動內存而只是調用析構函數。當一塊預定數量的內存用完時,deque又再次分配同樣長度的另外一塊內存。並把這些內存快放到一個數組中進行管理。在最初爲空而分配第一塊內存時是以中間爲邊界,若是push_back則中間部分調用++,而push_front時則從中間調用--。而當--到達內存快的頭部時deque就再次分配一塊內存,並從新內存的尾部繼續--;同樣對於push_back時從中間調用++,而當到達內存塊尾部時就再次分配一塊內存,並從新內存的頭部繼續++




*************使用deque不要從中間刪除和插入,因爲效率很低!!






2.成員函數


除了沒有capacity,reserve函數,多加了pop_front, push_front外其他跟vector特性是一樣的.
發佈了40 篇原創文章 · 獲贊 45 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章