队列(queue)
我们把queue叫作容器适配器,因为它本身是通过deque来实现的.相当于一个精简版,功能更弱的deque.
主要有如下成员函数
empty() 如果队列为空返回真
pop() 删除顶部元素
push() 加入一个元素
size() 返回队列中拥有的元素个数
back() 返回队列尾部元素
front()返回队列头部元素.
我们知道队列的特点就是先进先出,进的时候就是push嘛,在屁股后面添加元素,出嘛就是pop删除头部的元素,
当然了一般删除之前会先通过front()获取最前面那个元素.
示例:
#include<queue>
using namespace std;
queue<int> qu;
bool isEmpty = qu.empty(); //此时为空返回true
qu.push(11);
qu.push(22);
int head = qu.front(); //11
int end = qu.back(); //22
qu.pop();//删除头部元素11
优先队列(priority_queue)
priority_queue也是适配器容器,它的通过vector实现的.它本质上是一个堆(heap).
它也有入队出队.但是不是先入先出.而是优先级最大的先出.priority_queue默认是大堆
主要成员函数
empty() 如果队列为空返回真
pop() 删除对顶元素
push() 加入一个元素
size() 返回优先队列中拥有的元素个数
top() 返回优先队列对顶元素
在默认的优先队列中,优先级高的先出队
使用示例:
#include <queue>
using namespace std;
priority_queue<int> qq;
qq.push(2);
qq.push(5);
qq.push(3);
qq.push(4);
while(! qq.empty())
{
cout<<qq.top()<<endl; //打印的结果是5 4 3 2 ,从大到小的顺序.
qq.pop(); //删除列队头部元素
}