priority_queue
来源:互联网 发布:java temp 目录 编辑:程序博客网 时间:2024/06/09 20:08
优先队列(Priority_Queue)中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高进先出 (largest-in,first-out)的行为特征。
优先队列是竞赛中常见的数据结构,其本质是一棵完全二叉树(不是队列哈~),如何维护不解释,这里仅说明Priority_Queue的使用。
priority_queue 的使用
#include <queue>using namespace std;
priority_queue 的定义
priority_queue <<(type)>,(容器)<type>,(greater/less)<(type)> > Heap;//priority_queue <<int>,vector<int>,greater<int> > Heap 表示用vector为基础构造的int类型的小根堆//priority_queue <<int>,list<int>,less<int> > Heap 表示用list为基础构造的int类型的大根堆//注意最后是 > > 而不是 >> //定义时系统默认为 priority_queue<<(type)>,vector<(type)>,less(type)> Heap//例如 priority_queue<int> Heap 等价于 Priority_Queue <<int>,vector<int>,less<int> > Heap
Priority_Queue 基本函数使用(竞赛常用)
bool Heap.empty(); //判断优先队列是否为空void Heap.push(x); //向优先队列中加入元素xvoid Heap.pop(); //将优先队列中的最顶端元素弹出(type) Heap.front(); //获取优先队列最顶端元素的数值int Heap.size(); //返回优先队列中元素的多少
priority_queue 实用——堆排
#include <cstdio>#include <queue>using namespace std; int n;priority_queue <int> Heap;int main(){ scanf("%d",&n); for (int i=1;i<=n;i++) { int x; scanf("%d",&x); Heap.push(x); } while (!Heap.empty()) { printf("%d\n",Heap.top()); Heap.pop(); } return 0;}
0 0
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- Priority_queue
- priority_queue
- priority_queue
- priority_queue
- strcasecmp
- 电子商城开发第一天(基本的分析)
- java反射 refect
- properties类是Hashtable的子类
- 10405 - Longest Common Subsequence
- priority_queue
- 第一章实验作业
- 一步步学习java并发编程模式之Active Object模式(一)什么是active object
- 2014级算法第1周(春)项目——计算两个数的最大公约数(修改)
- java io
- MFC界面中添加简单动画的思路
- 解决Scope 'request' is not active for the current thread异常
- 黑马程序员-集合框架的Map集合
- 快速排序法