STL queue&deque&stack
queue主要包括迴圈佇列queue和優先佇列priority_queue兩個容器
stack包含棧容器
include 標頭檔案宣告
#include <queue>
#include <deque>
#include <stack>
宣告
queue<int> q;
deque<int> p;
struct abc{…};
queue<abc> q; //結構體rec中必須定義小於號
priority_queue<int> q; // 大根堆
priority_queue<int, vector<int>, greater<int> q; // 小根堆
priority_queue<pair<int, int>>q;
stack宣告和其他的容器類似
queue:
首先插入的元素將首先被提取,依此類推
有一個稱為“前”的元素,它是位於最前位置或位於第一個位置的元素,也有一個名為“後”的元素,它是位於最後位置的元素
在普通佇列中,元素的插入在尾部,而刪除則從前面開始
優先佇列是普通佇列的擴充套件版本,對優先順序最高的元素首先進行操作
/////
迴圈佇列 queue
push 從隊尾插入
pop 從隊頭彈出
front 返回隊頭元素
back 返回隊尾元素
push()
pop()
front()
back()
超過限制會迴圈進行
/////
優先佇列 priority_queue
push 把元素插入堆
pop 刪除堆頂元素
top 查詢堆頂元素(最大值)
push()
pop()
top()
deque:
雙端佇列deque是一個支援在兩端高效插入或刪除元素的連續線性儲存空間
就像是vector和queue的結合
與vector相比,deque在頭部增刪元素僅需要O(1)的時間
與queue相比,deque像陣列一樣支援隨機訪問
/////
begin/end,返回deque的頭/尾迭代器
front/back 隊頭/隊尾元素
push_back 從隊尾入隊
push_front 從隊頭入隊
pop_back 從隊尾出隊
pop_front 從隊頭出隊
clear 清空佇列
效率較慢
stack:
首先插入的元素將在末尾提取,以此類推。有一個名為“top”的元素,它是位於最上面位置的元素
所有插入和刪除操作都是在堆疊的頂部元素本身進行的
/////
push 向棧頂插入
pop 彈出棧頂元素
push()
pop()