雙向佇列:支援插入刪除元素的線性集合
插入、刪除、獲取操作支援兩種形式:快速失敗和返回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 ...