栈:stack
#include<stack>
using namespace std;
stack<int> s;
s.top() //取出栈顶
s.push(X) //把X压入栈中
s.empty() //判断栈是否为空
s.pop() //弹出栈顶
s.size() //栈的大小
队列:queue
#include<queue>
using namespace std;
queue<int> q;
q.empty() //判断队列是否为空
q.front() // 返回队列头部元素
q.back() // 返回队列尾部元素
q.pop() //弹出队列头部元素
q.push(x) //把x压入队列中
q.size() //返回队列储存队列的元素的个数
二叉堆:
#include<queue>
using namespace std;
priority queue<int> big_heap; //默认构造最大堆
priority queue<int,vector<int>,greater<int>> small_heap; //最小堆构造方法
priority queue<int,vector<int>,less<int>> big_heap2; //最大堆构造方法
big_heap.empty() //判断堆是否为空
big_heap.pop() //弹出堆顶元素 (最大/最小值)
big_heap.push(x) //把元素x添加至二叉堆
big_heap.top() //返回堆顶元素(最大/最小值)
big_heap.size() //返回堆中元素个数