Deque雙端佇列

2022-02-24 23:42:03 字數 770 閱讀 3236

雙向佇列:支援插入刪除元素的線性集合

插入、刪除、獲取操作支援兩種形式:快速失敗和返回null或true/false

既具有fifo特點又具有lifo特點,即是佇列又是棧

不推薦插入null元素,null作為特定返回值表示隊列為空

未定義基於元素相等的equals和hashcode

deque繼承關係

雙向佇列操作

插入元素

移除元素

獲取元素

棧操作pop(): 彈出棧中元素,也就是返回並移除隊頭元素,等價於removefirst(),如果佇列無元素,則發生nosuchelementexception

push(): 向棧中壓入元素,也就是向隊頭增加元素,等價於addfirst(),如果元素為null,則發生npe,如果棧空間受到限制,則發生illegalstateexception

滿足fifo場景時

滿足lifo場景時,曾經在解析xml按標籤時使用過棧這種資料結構,但是卻選擇stack類,如果在進行棧選型時,更推薦使用deque類,應為stack是執行緒同步

雙端佇列(deque)

區別於資料結構的雙端佇列,這裡的是stl的!雙端佇列 deque容器類 include與vector 類似,支援隨機訪問和快速插入刪除,它在容器中某一位置上的操作所花費的是線性時間。與 vector不同的是,deque還支援從開始端插入資料 push front 此外deque 不支援與vector...

雙端佇列deque

雙端佇列deque容器是一種優化了的 在序列兩端對元素進行新增和刪除操作的基本序列容器。它也允許適度快速地進行隨機訪問 就像vector一樣,它也有乙個operator操作符,然而,它沒有vector的那種把所有的東西都儲存在一塊連續的記憶體塊中的約束。deque的典型實現是利用多個連續的儲存塊 同...

deque雙端佇列

deque 1 生成構造 constructing deques include include int main std deque fifth myints,myints sizeof myints sizeof int fifth std deque first 3 deque with 3 ...