C++ STL Priority Queues
来源:互联网 发布:worktile mac版 编辑:程序博客网 时间:2024/05/30 05:26
优先队列(Priority Queues):顾名思义,一个有着优先级的队列。它是一种ADT,和队列的思想差不多—— 排队,数据结构中的队列是不能插队的,不能颠倒排队的顺序,而在优先队列里,先出队列的元素不是先进队列的元素,而是优先级高的元素,默认的优先级是数字大的数优先级高。当然用户是可自定义类型的,这样就必须为元素定义一个优先级。因为出队元素不是最先进队的元素,则出队的方法有queue的front() 变为top()。
-定义
namespace std{ template <typename T, typename Container = vector<T>, typename Compare = less<typename Container::value_type> > class priority_queue;}
注意需要头文件:< queue >
priority_queue<int>pq1; orpriority_queue<int,deque<int> >pq3;
-自定义类型
priority_queue<int,vector<int>,greater<int> >pq2;//优先级定义为数字小的优先级大
-插入元素
push()
int a[10]={2,3,4,1,8,6,5,7,9,5};for(int i=0;i<10;i++){ pq1.push(a[i]);}
-删除元素
pop()
pq1.pop();//即删除队头元素,出队
-取队头元素
top()
int e = pq1.top();//将队头元素的值赋给e
-容量
sizeof()
int size = pq1.size();
-实例
代码:
#include<cstdio>#include<queue>#include<algorithm>using namespace std;int main(){ priority_queue<int>pq1; //默认是降序 int a[10]={2,3,4,1,8,6,5,7,9,5}; for(int i=0;i<10;i++) { pq1.push(a[i]); } while(!pq1.empty()){ printf("%d ",pq1.top());//打印出9 8 7 6 5 5 4 3 2 1 pq1.pop(); } printf("\n"); priority_queue<int,vector<int>,greater<int> >pq2;//可以重写成升序 int b[10]={2,3,4,1,8,6,5,7,9,5}; for(int i=0;i<10;i++) { pq2.push(b[i]); } while(!pq2.empty()){ printf("%d ",pq2.top());//打印出1 2 3 4 5 5 6 7 8 9 pq2.pop(); } printf("\n"); priority_queue<int,deque<int> >pq3; int c[10]={2,3,4,1,8,6,5,7,9,5}; for(int i=0;i<10;i++) { pq3.push(c[i]); } int size = pq3.size(); printf("%d\n",size); //输出10 while(!pq3.empty()){ printf("%d ",pq3.top());//打印出9 8 7 6 5 5 4 3 2 1 pq3.pop(); } return 0;}
0 0
- C++ STL Priority Queues
- 【c++——STL】标准模板库STL中优先队列Priority Queues使用手册
- priority queues
- Priority Queues
- 标准模板库STL中优先队列Priority Queues使用手册
- heap with priority queues
- Heap and Priority Queues
- C++ Queues(队列)、Priority Queues(优先队列)
- C++ Queues(队列)、Priority Queues(优先队列)
- !!!Chapter 6 Priority Queues (Heaps)
- Algorithm Part I:Priority Queues
- Priority Queues优先级队列详解
- Algorithms 学习笔记05 Priority Queues
- Algorithms - Week 4-0 Priority Queues
- Java学习笔记(20) Lists, Stacks, Queues, and Priority Queues
- C++ Priority Queues(优先队列) and C++ Queues(队列)
- stl priority queue
- STL priority实例
- FSL 1588 PTPD简要分析!
- 内联函数 常量和宏的区别
- 初学retrofit
- 数据在同网段和跨网段通信流程
- Spring 缓存使用
- C++ STL Priority Queues
- 杂乱
- leetcode解题之 508. Most Frequent Subtree Sum II java 版(求子树和)
- 单例模式
- Android ListVideo之跳转详情无缝播放 实现
- HDU 1875 畅通工程再续
- vs2013-opencv2.4.10-imread()读取图片问题
- <mvc:annotation-driven />注解意义
- C++学习日记17——字符串string输入