priority_queue 优先级队列的使用
来源:互联网 发布:php 超全局变量 编辑:程序博客网 时间:2024/05/19 05:29
程序功能是模拟排队过程,每人有姓名和优先级,优先级相同则比较姓名,开始有5个人进入队列,然后队头2个人出队,再有3个人进入队列,最后所有人都依次出队,程序会输出离开队伍的顺序。
#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{bool operator()(const Node &na, const Node &nb){if (na.priority != nb.priority)return na.priority <= nb.priority;elsereturn 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, "xiaotan"));a.push(Node(3, "xiaoliu"));a.push(Node(1, "xiaotao"));a.push(Node(5, "xiaowang"));//队头的2个人出队PrintfNode(a.top());a.pop();PrintfNode(a.top());a.pop();printf("--------------------\n");//再进入3个人a.push(Node(2, "xiaobai"));a.push(Node(2, "xiaoqiang"));a.push(Node(3, "xiaoxin"));//所有人都依次出队while (!a.empty()){PrintfNode(a.top());a.pop();}return 0;}
0 0
- priority_queue 优先级队列的使用
- STL中优先级队列的使用priority_queue
- 【day0414 C++】优先级队列 priority_queue的使用
- priority_queue 优先级队列的用法
- STL优先级队列(priority_queue)和集合(set)的使用
- 优先级队列priority_queue源代码
- STL - priority_queue 优先级队列
- priority_queue优先级队列
- priority_queue 优先级队列
- 优先级队列(priority_queue)
- 优先级队列priority_queue
- STL priority_queue 优先级队列
- 优先级队列 priority_queue
- 库函数优先级队列(priority_queue)
- priority_queue优先级队列
- 优先级队列priority_queue
- 优先队列priority_queue的使用
- C++ 优先级队列(priority_queue)
- Study Flex《Ant编译swc中无法转换state》
- Android与JavaScrip进行交互(一)
- 香港苹果店外黄牛扎堆:买卖iPhone俨然
- 三极管基本放大电路解析
- C++ 使用::std::vector<>
- priority_queue 优先级队列的使用
- C++基础之Static(我要跳槽到全局)
- Base64 编码与解码
- 百度地图API之new BMap.Point
- C#学习笔记:并查集
- mongodb简单总结(一)
- php如何提高效率
- perl hash 根据键访问相应值
- “当前不会命中断点,还没有为该文档加载任何符号”解决办法