佇列大致上和棧相同,不同之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的容器介面卡,都是基於deque容器上實現的。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。
需要包含queue標頭檔案
queue《資料型別》變數名
如:queueq;
q.push(n); //將n放進佇列
q.front(); //返回隊頭元素
q.pop(); //刪除隊頭元素
q.back(); //返回隊尾元素
q.size(); // 返回元素個數
q.empty(); //檢查佇列是否為空,空為返回true
將棧裡的翻轉字串問題中的棧改為佇列即可變為正序輸出,雖然可以直接用cout,cin來替代,但可以清楚的分辨兩者的差別。
#include
#include
using
namespace std;
intmain()
cout << endl;
//換行
}else
str.
push
(ch)
;//入棧
}return0;
}
容器介面卡(棧容器介面卡 佇列容器介面卡)
我們已有的容器 比如vector list 這個容器支援的操作很多,比如插入,刪除,迭代器訪問等等。而我們希望這個容器表現出來的是棧的樣子 先進後出,入棧出棧等等,此時,我們沒有必要重新動手寫乙個新的資料結構,而是把原來的容器重新封裝一下,改變它的介面,就能把它當做棧使用了。c 定義了三種容器介面卡...
STL容器介面卡 queue
1.概念 和stack一樣,queue也是一種容器介面卡,其通過對既有容器進行包裝,形成一種fifo first in first out 的資料結構。queue允許在一端進行插入,另一端進行訪問,如下 2.api queue提供的api介面比較簡單,如下 constructor construct...
容器介面卡 什麼是容器介面卡和用法
就是由基本的容器適配 改造 出來的那些容器,其它沒啥特殊的。比如stack,因為我們可以把stack理解成只是對vector deque或list的訪問加一點限制而已 只能從頭部訪問 所以沒有必要把stack做成乙個基本容器,使用其它的基本容器再稍微封裝改造一下就ok了,所以stack在stl中就只...