STL 隊列
阿新 • • 發佈:2018-08-08
namespace bool names cst push 入隊 返回 () cpp
頭文件
#include <queue>
定義
普通隊列:
queue < int > q;
優先隊列:
priority_queue < int, vector< int >, greater< int > > q; //遞增
priority_queue < int, vector< int >, less< int > >q; //遞減
函數
普通隊列
- void push(x):將x壓入隊列的末端
- void pop():彈出隊頂元素
- int front():返回隊頂元素
- int back():返回隊尾元素
- bool empty():當隊列為空時,返回true
- int size():返回隊列的長度
優先隊列
- int push(x):將x壓入隊列的末端
- void pop():彈出隊頂元素
- int top():返回隊頂元素
- int back():返回隊尾元素
- bool empty():當隊列為空時,返回true
- int size():返回隊列的長度
例子
#include <queue> #include <cstdio> using namespace std; queue < int > q1; priority_queue < int, vector< int >, greater< int > > q2; priority_queue < int, vector< int >, less< int > >q3; int main() { q1.push(2); q1.push(1); q1.push(3); q1.push(5); q1.push(4); q2.push(2); q2.push(1); q2.push(3); q2.push(5); q2.push(4); q3.push(2); q3.push(1); q3.push(3); q3.push(5); q3.push(4); printf("q1.size = %d\nq1.top = %d\n", q1.size(), q1.front()); printf("q2.size = %d\nq2.top = %d\n", q2.size(), q2.top()); printf("q3.size = %d\nq3.top = %d\n", q3.size(), q3.top()); printf("q1:"); while (!q1.empty()) { printf("%d ", q1.front()); q1.pop(); } puts(""); printf("q2:"); while (!q2.empty()) { printf("%d ", q2.top()); q2.pop(); } puts(""); printf("q3:"); while (!q3.empty()) { printf("%d ", q3.top()); q3.pop(); } puts(""); }
STL 隊列