C 篇 容器介面卡

2021-09-25 21:11:01 字數 1243 閱讀 8908

可以用某種順序容器來實現,(讓已有的順序容器以棧/佇列的方式工作)。

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...