总结

queue

FIFO(First in First out)

queue<int> q;  // 初始化<>里可以是任何类型
q.push(10);    //在末尾添加元素
q.front();     // 返回队列首元素
q.back();      // 返回队列末尾元素
q.empty();     // 如果队列为空返回true ,否则返回false

priority_queue(),优先队列
// 下面的是大顶堆
priority_queue<int> q; /*<> 里面的类型必须定义了优先级, 默认使用小于,意思就是越大的优先级越大*/
       
priority_queue<T,vector<T>,cmp> // 也可以自定义T类型的优先级
// 对于基础类型,可以使用
// 小顶堆
priority_queue<T,vector<T>,greater<T>> q// 使得越小的优先级越高
q.push() // 插入的复杂度是log(n)
q.front() // 没有,back() 操作
q.empty() // 判断是否为空
stack() 栈

FILO(First in Last out)

stack<int> s;// 可以是任何类型
s.push(item) ; // 加入数据
s.pop(item) ; // 删除最后加入的数据
s.top(item) ; // 返回栈顶元素