可以用某種順序容器來實現,(讓已有的順序容器以棧/佇列的方式工作)。
stack: 標頭檔案 <」stack「>
• 棧 – 後進先出
queue: 標頭檔案 <「queue」>
• 佇列 – 先進先出
priority_queue: 標頭檔案 <「queue」>
• 優先順序佇列 – 最高優先順序元素總是第乙個出列
都有3個成員函式:
• push: 新增乙個元素;
• top: 返回棧頂部或隊頭元素的引用
• pop: 刪除乙個元素
容器介面卡上沒有迭代器
~stl中各種排序, 查詢, 變序等演算法都不適合容器介面卡
stack 是後進先出的資料結構
只能插入, 刪除, 訪問棧頂的元素
可用 vector, list, deque來實現
• 預設情況下, 用deque實現
• 用 vector和deque實現, 比用list實現效能好
template
class stack ;
stack 中主要的三個成員函式:
• void push(const t & x);
將x壓入棧頂
• void pop();
彈出(即刪除)棧頂元素
• t & top();
返回棧頂元素的引用. 通過該函式, 可以讀取棧頂元素的值, 也可以修改棧頂元素
和stack 基本類似, 可以用 list和deque實現
預設情況下用deque實現
template
class queue ;
同樣也有push, pop, top函式
• push發生在隊尾
• pop, top發生在隊頭, 先進先出
和 queue類似, 可以用vector和deque實現
預設情況下用vector實現
priority_queue 通常用堆排序技術實現, 保證最大的元素總是在最前面
• 執行pop操作時, 刪除的是最大的元素
• 執行top操作時, 返回的是最大元素的引用
預設的元素比較器是 less<「t」>
#include #include using namespace std
;int main()
return 0;
} //輸出結果: 9.8 5.4 3.2
容器介面卡(棧容器介面卡 佇列容器介面卡)
我們已有的容器 比如vector list 這個容器支援的操作很多,比如插入,刪除,迭代器訪問等等。而我們希望這個容器表現出來的是棧的樣子 先進後出,入棧出棧等等,此時,我們沒有必要重新動手寫乙個新的資料結構,而是把原來的容器重新封裝一下,改變它的介面,就能把它當做棧使用了。c 定義了三種容器介面卡...
C 容器介面卡
1 什麼是介面卡 2 容器介面卡 3 為什麼將stack queue和priority queue稱作為容器介面卡 雖然stack queue priority queue中也可以存放元素,但在stl中並沒有將其劃分在容器的行列,而是將其稱為容器介面卡,這是因為每個容器在底層都有自己的實現方式,而s...
C 容器介面卡
除了順序容器外,標準庫還定義了三個順序容器介面卡 stack,queue和priority queue。介面卡是一種機制,能夠使某種事物行為看起來像另外一種事物。乙個容器介面卡接受一種已有的容器型別,使其行為看起來像一種不同的型別。所有容器介面卡都支援的操作和型別 操作和型別 說明size type...