1.功能:queue容器常用的对外接口
2.构造函数:
- queue<T> que; //queue采用模板类实现,queue对象的默认形式
- queue(const queue &que); //拷贝构造函数
3.赋值操作:
- queue &operator = (const queue &que); //重载等号操作符
4.数据存取:
- push(elem); //在队尾添加元素
- pop(); //从对头移除第一个元素
- back(); //返回最后一个元素
- front(); //返回第一个元素
5.大小操作:
- empty(); //判断queue是否为空
- size(); //返回栈的大小
6.优先队列:
greater<Type>是升序排列,less<Type>是降序排列。
-
priority_queue<int> 是默认的大根堆实现,top()是当前优先队列的最大值。
-
priority_queue<int,vector<int>,less<int>>是最大值的优先队列,top() 是当前优先队列的最大值。
-
priority_queue<int,vector<int>,greater<int>>是最小值的优先队列,top() 是当前优先队列的最小值。
-
#include<iostream> #include<queue> using namespace std; class person { public: person(string name,int age) { this->myname=name; this->myage=age; } string myname; int myage; }; void test1() { //创建队列 queue<person> p; //数据内容 person p1("李信",25); person p2("澜",18); person p3("小乔",15); person p4("后裔",20); person p5("蔡文姬",13); //入队 p.push(p1); p.push(p2); p.push(p3); p.push(p4); p.push(p5); //判空 while(!p.empty()) { cout<<"查看当前队列的首元素姓名:"<<p.front().myname<<" 年龄:"<<p.front().myage<<endl; cout<<"查看当前队列的尾元素姓名:"<<p.back().myname<<" 年龄:"<<p.back().myage<<endl; p.pop(); //查看完之后即移出队列 } cout<<"当前队列大小:"<<p.size()<<endl; } int main() { test1(); return 0; }