您的位置:首页 > 编程语言 > C语言/C++

stl学习(一)优先队列

2016-07-16 10:39 411 查看
优先队列priority queue

头文件
#include<queue>


优先队列,也就是原来我们学过的堆,按照自己定义的优先级出队时。默认情况下底层是以Vector实现的heap。
既然是队列,也就只有入队、出队、判空、大小的操作,并不具备查找功能。

函数列表:

empty() 如果优先队列为空,则返回真 

pop() 删除第一个元素 

push() 加入一个元素 

size() 返回优先队列中拥有的元素的个数 

top() 返回优先队列中有最高优先级的元素

用途:排序,huffman编码,dijkstra堆优化···
功能实现:
priority_queue<int>Q;

vector<int>a;
priority_queue<int>Q(a+a.begin(),a+a.end());

typedef pair<int,int>Pa;
priority_queue<Pa,vector<Pa>,less<Pa>>Q;//大根堆;
priority_queue<Pa,vector<Pa>,greater<Pa>>Q;//小根堆;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  stl 算法 c++