priority_queue() //默认构造函数,生成一个空的排序队列 priority_queue(const queue&); //拷贝构造函数 priority_queue(const Compare& comp); //构造生成一个空的priority_queue对象, //使用comp作为priority_queue的comparison priority_queue(const value_type* first, const value_type* last); //带有两个参数的构造函数, //使用默认的Comparison作为第三个参数 priority_queue& operator=(const priority_queue &); //赋值运算符重载 c.~priority_queue() //销毁所有元素并释放内存
empty();//判断是否为空 push(Elem e);//队列尾部增加一元素 pop();//队列头部数据出队 top();//返回头部数据 size();//返回栈中元素个数
#include <queue>
#include <list>
#include <cstdio>
using namespace std;
/**
优先级队列的使用范例
*/
int main(){
//优先队列默认是使用vector作为容器
priority_queue<int> a;
// priority_queue<int,list<int>> b;//可以这样定义,但无法使用
int i;
//压入数据
for(i=0;i<10;i++){
a.push(i*2-5);
//b.push(i);//编译错误
}
printf("优先队列的大小=%d\n",a.size());
while(!a.empty()){
printf("%d\n",a.top());
a.pop();//出队
}
putchar('\n');
return 0;
}
#include <queue>
#include <cstring>
#include <cstdio>
using namespace std;
/**
结构体
*/
struct Node{
char szName[20];//人名
int priority;//优先级
//构造函数
Node(int nri, char *pszName){
strcpy(szName, pszName);
priority = nri;
}
};
/**
结构体的比较方法 改写operator()
*/
struct NodeCmp{
//重写operator()方法,注意这里重写的写法,operator()(参数1,...)
bool operator()(const Node &na, const Node &nb){
if (na.priority != nb.priority)
return na.priority <= nb.priority;
else
return strcmp(na.szName, nb.szName) > 0;
}
};
/**
打印节点
*/
void PrintfNode(Node na){
printf("%s %d\n", na.szName, na.priority);
}
int main(){
//优先级队列默认是使用vector作容器,底层数据结构为堆。
priority_queue<Node, vector<Node>, NodeCmp> a;
//有5个人进入队列
a.push(Node(5, "小谭"));
a.push(Node(3, "小刘"));
a.push(Node(1, "小涛"));
a.push(Node(5, "小王"));
//队头的2个人出队
PrintfNode(a.top());
a.pop();
PrintfNode(a.top());
a.pop();
printf("--------------------\n");
//再进入3个人
a.push(Node(2, "小白"));
a.push(Node(2, "小强"));
a.push(Node(3, "小新"));
//所有人都依次出队
while (!a.empty()){
PrintfNode(a.top());
a.pop();
}
return 0;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有