stl学习(一)优先队列

优先队列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;//小根堆;



posted @ 2016-07-16 10:39  keshuqi  阅读(196)  评论(0编辑  收藏  举报