資料結構與演算法 5 deque

2022-08-15 01:45:10 字數 439 閱讀 8997

vector是單向開口的連續線性空間,deque則是一種雙向開口的連續線性空間。所謂雙向開口,意思是可以在頭尾兩端分別做元素的插入和刪除操作。stl中deque與vector最大的差異,一在於deque允許常數時間對頭端進行元素的插入操作;二是其由分段連續空間組合而成。

這部分內容的原理講解起來並不難,但是要真正正確管理好這個容器,其**還是有些多的。先來個圖:

這裡的map不是stl那個容器map,而是deque的主控,是一段線性連續空間。每個元素通過map對映到一塊連續線性空間。對映到的空間稱之為緩衝區。每個緩衝區擁有有限的容量,當當前緩衝區已經佔滿時,就跳轉到另外一塊緩衝區。當當前所有map上對映的緩衝區都佔滿時,需要開闢新的map。這個和vector有點類似,申請乙個更大的map,然後將之前的元素全部拷貝過來,釋放舊空間~~具體的原理還是建議看書哈《stl原始碼剖析》。

資料結構與演算法 5 deque

vector是單向開口的連續線性空間,deque則是一種雙向開口的連續線性空間。所謂雙向開口,意思是可以在頭尾兩端分別做元素的插入和刪除操作。stl中deque與vector最大的差異,一在於deque允許常數時間對頭端進行元素的插入操作 二是其由分段連續空間組合而成。這部分內容的原理講解起來並不難...

資料結構與演算法 演算法 演算法和資料結構

資料結構與演算法 演算法 好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您一開始或至少在我的情況下,並且我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟...

資料結構 資料結構與演算法01

1 求一組整數中的最大值。演算法 基本操作是 比較兩個數的大小 模型 仔細想想 你並不知道這個整數到底是多大?整數過大你該怎麼去表示?2 足協的資料庫管理的程式 演算法 需要管理的專案?如何管理?使用者介面?模型 3 資料與資料結構 資料 所有能被輸入到計算機中,並被計算機處理的符號的集合計算機操作...