Queue简介
queue是队列容器,是一种“先进先出”的容器。
queue是简单地装饰deque容器而成为另外的一种容器。
#include <queue>
1、queue的添加、删除、获取元素
queue.push(elem); //往队尾添加元素
queue.pop(); //从队头移除第一个元素
queue.back(); //返回最后一个元素
queue.front(); //返回第一个元素
2、queue的大小
queue.empty(); //判断队列是否为空
queue.size(); //返回队列的大小
例:
while ( !q.empty())
{
int tmp = q.front();
cout << tmp << " ";
q.pop();
}
3、queue对象的拷贝构造与赋值
queue(const queue &que); //拷贝构造函数
queue& operator=(const queue &que); //重载等号操作符
queue<int>queIntA;
queIntA.push(1);
queIntA.push(3);
queIntA.push(5);
queIntA.push(7);
queIntA.push(9);
queue<int>queIntB(queIntA); //拷贝构造
queue<int>queIntC;
queIntC= queIntA; //赋值
优先级队列priority_queue
按照值的大小来决定出队列的顺序,默认是
最大值优先级队列、最小值优先级队列
优先级队列适配器 STL priority_queue
用来开发一些特殊的应用
include <queue>
1、priority_queue的用法
priority_queue<int> p1; //默认是 最大值优先级队列
//priority_queue<int, vector<int>, less<int> > p1; //相当于这样写 提前定义好的预定以函数 谓词
priority_queue<int, vector<int>, greater<int>> p2; //最小值优先级队列
p1.push(33);
p1.push(11);
p1.push(55);
p1.push(22);
cout <<"队列大小" << p1.size() << endl; // 4
cout <<"队头" << p1.top() << endl; // 55
{
cout << p1.top() << " "; // 55 33 22 11
p1.pop();
}