deque

deque概述

deque是一種雙向開口的連續線性空間。可以在頭尾兩端分別做元素的插入和刪除操作。
deque和vector的不同:
1)deque可以常數時間內對起頭端進行元素的插入或移除操作
2)deque沒有容量觀念,它是動態地以分段連續空間組合而成,隨時可以增加一段新的空間並鏈接起來。

deque中控器

deque是由一段一段的定量連續空間構成。deque採用一塊所謂的map作爲主控。這裏所謂map是一塊連續空間,其中每個元素都是指針,指向另一段(較大的)連續空間,稱爲緩衝區,緩衝區纔是deque的存儲空間主體。SGI STL允許我們制定緩衝區的大小,默認值0表示將使用512bytes緩衝區。

deque的迭代器

deque迭代器應該具備的結構:
1.能夠指出分段連續空間(亦即緩衝區)在哪裏
2.必須能夠判斷自己是否已經處於其所在緩衝區的邊緣,如果是,一旦前進或後退時必須跳躍至下一個或上一個緩衝區。爲了能夠正確跳躍,deque必須隨時掌握管控中心。
插個圖喔

deque的數據結構

deque除了維護一個map指針外,也維護start,finish兩個迭代器,分別指向第一緩衝區的第一個元素和最後緩衝區的最後一個元素。一旦map所提供的節點不足,就必須重新配置更大的一塊map。

發佈了38 篇原創文章 · 獲贊 7 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章