[C++] stack和queue的常用函数
参考资料:
stack
stack 后入先出(LIFO)栈
头文件:
#include<stack>
定义:
stack<int> s;
函数:
函数 | 功能 |
---|---|
q.top() | 获取栈顶元素(并不删除) |
q.pop() | 删除栈顶元素 |
q.push(x) | 向栈中加入元素 |
q.empty() | 判断栈是否为空 |
queue
queue 先入先出(FIFO)队列
头文件:
#include<queue>
定义:
queue<int> q;
函数:
函数 | 功能 |
---|---|
q.front() | 获取队首元素(并不删除) |
q.pop() | 删除队首元素 |
q.push(x) | 向队列中加入元素 |
q.empty() | 判断队列是否为空 |
priority_queue 优先队列
头文件:
#include<queue>
定义:
priority_queue<int> q; // 队头最大
priority_queue<int,vector<int>,greater<int> > q; 队头最小
函数:
函数 | 功能 |
---|---|
q.top() | 获取优先队列中最大的元素(并不删除),其时间复杂度为\(O(1)\) |
q.pop() | 删除优先队列中最大元素,其时间复杂度为\(O(log n)\) |
q.push(x) | 向优先队列中加入元素,其时间复杂度为\(O(log n)\) |
q.empty() | 判断优先队列是否为空 |