优先队列

普通优先队列:

头文件:#include<queue>、#include<functional>

定义:

   (默认:从大到小)priority_queue<int> que;

   (自定义:从大到小)priority_queue<int,vector<int>,less<int> > que;

   (最后两个'>'间要有个空格,下同)

   (自定义:从小到大)prioity_queue<int,vector<int>,greater<int> > que;

操作:

   增加新元素——que.push(a[i]);

   删除队首元素——que.pop();

   访问队首元素——que.top();

   查询元素个数:que.size();

   判断队列空否:que.empty();(空为真)

 结构体优先队列:

头文件:#include<queue>

定义:

step 1:定义所需结构体 

   struct node

   {

    int data;

    char c;

   }; 

step 2:定义排序方式

按data的大小 从大到小排:

   bool operator<(node a,node b)

   {

     return a.data<b.data;

   }

sept 3:定义结构体优先队列

priority_queue<node> que;

操作:

   增加新元素:que.push({5,'c'});

   删除队首元素:que.pop();

   访问队首元素:que.top().dataque.top().c;

   查询元素个数:que.size();

   判断队列空否:que.empty();(空为真)

原文地址:https://www.cnblogs.com/Cnxz/p/12256605.html