priority_queue详解

Posted qq2210446939

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了priority_queue详解相关的知识,希望对你有一定的参考价值。

简述

  优先队列是stl里容器的一种,优先队列的底层结构是堆,会根据定义的优先级将优先级高的排在队首,入队和出队的时间复杂度在log(n)。

定义

  优先队列默认大的在队首,字符串则为字典序由大到小。int,double,char,string类型都可以这样定义。

priority_queue<int> qe;//默认大的在前面
priority_queue<string,vector<string>,greater<string> >qe;//小的在前面 

  若队内元素是自己定义的结构体,则需要重载运算符改变优先级。

struct node{
    int x,y;
    node(int a,int b){x=a;y=b;}
};
bool operator<(node a,node b){
    return a.x>b.x;//注意这里的符号是反过来的,现在是从小到大 
}
priority_queue<node> qe; 

成员函数

容量

•qe.empty();  队列判空

•qe.size();     队列元素个数

返回信息

•qe.top();     队头元素(在优先队列没有front和back函数)

操作

•qe.push(x);   将x入队

•qe.pop();    队首元素出队

 

以上是关于priority_queue详解的主要内容,如果未能解决你的问题,请参考以下文章

priority_queue详解

C++ STL priority_queue容器适配器详解

multimap 和priority_queue详解

c++优先队列(priority_queue)用法详解

[转]c++优先队列(priority_queue)用法详解

STL优先队列priority_queue详解+OpenJudge-4980拯救行动