优先队列问题

优先队列问题

就是一个队列按照从小到大事先排好序了node

priority_queue<int>pque;   //从大到小输出的队列

priority_queue<int, vector<int>, less<int>>s;                 //less表示按照递减(从大到小)的顺序插入元素
priority_queue<int, vector<int>, greater<int>>s;              //greater表示按照递增(从小到大)的顺序插入元素less

几个比较重要的函数函数

基本操做:spa

empty()      若是队列为空,则返回真code

pop()    删除对顶元素,删除第一个元素blog

push()        加入一个元素队列

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

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

在默认的优先队列中,优先级高的先出队。在默认的int型中先出队的为较大的数。编译

struct cmp { bool  operator()(int x,int y) { return  x>y; } };
priority_queue<int,vector<int>,cmp>pque;    //定义方法

 

 

struct node { int a,b; friend bool operator<(node x,node y)   { return x.a<y.a; } }v[500];

 //在重载”<”时,最好不要重载”>”,可能会发生编译错误

相关文章
相关标签/搜索