STL-queue&deque&stack

才瓯發表於2024-10-07

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()