1. queue
queue不是容器,而是FIFO的容器适配器,默认使用deque实现。
queue的特点:
- 不能下标访问
- 无begin, end
- emplace, push实现尾部插入,pop实现头部删除
2. stack
stack是LIFO的容器适配器,用deque实现
stack的特点:
- 不能下标访问
- 只有top访问栈顶
- emplace, push栈顶插入,pop栈顶删除
3. priority_queue
优先队列容器适配器,默认使用less排序,即顶部为最大值。
操作类似stack: push, pop, top
// 存放的内容为int,底层基于vector实现,比较方法为less函数类
priority_queue<int, vector<int>> q;
// 存放的内容为pair<int, int>,底层基于vector实现,比较方法为自己定义的一个greater函数类
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q;