优先队列

原创 2018年04月17日 11:03:24

img

从大到小:

priority_queue<int,vector<int>,less<int>>p;

从小到大:

priority_queue<int,vector<int>,greater<int>>q;

优先队列里放 pair :

typede pair<LL,int>PII;
vector<PII>ans;
priority_queue<PII,vector<PII>,greater<PII>>que;

这里是首先让第一元素从小到大排序,当第一元素相等时,再按第二元素从大到小排序。

优先队列自定义重载:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
typedef long long LL;

const int maxn = 1e5 + 5;

struct X{
    int a,b;
    X () {}
    X (int aa,int bb) {
        a = aa,b = bb;
    }
    friend bool operator < (const X A, const X B){
        if(A.a == B.a) return A.b > B.b; //这里是反过来的,小于就是大于,大于就是小于。
        else return A.a > B.a;
    }
};

X ans[maxn];
priority_queue <X> pq;

int main(){
    ans[1].a = 1;
    ans[1].b = 2;
    ans[2].a = 2;
    ans[2].b = 1;
    ans[3].a = 1;
    ans[3].b = 3;
    pq.push(ans[1]);
    pq.push(ans[3]);
    pq.push(ans[2]);
    while(!pq.empty()){
        X k = pq.top();
        pq.pop();
        printf("%d %d\n",k.a,k.b);
    }
}

输出:
1 2
1 3
2 1
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dreams___/article/details/79971841

Struts 原理与应用(一)

本文是俺在公司技术会议上的演讲提纲算是一个小教程吧。Struts 原理与应用 2003年12月1日Chapter 1: MVC Architecture 介绍Struts的理论基础,MVC架构Chap...
  • icecloud
  • icecloud
  • 2003-12-07 22:36:00
  • 1660

优先队列 优先队列.rar

  • 2010年06月28日 14:18
  • 827KB
  • 下载

C++ STL优先队列常用用法

STL优先队列
  • CerberuX
  • CerberuX
  • 2016-06-26 13:08:24
  • 1935

c++STL中优先队列的使用

说到队列,我们首先想到就是先进先出,后进后出;那么何为优先队列呢,在优先队列中,元素被赋予优先级,当访问元素时,具有最高级优先级的元素先被访问。即优先队列具有最高级先出的行为特征。 优先队列在头文件...
  • AC_Gibson
  • AC_Gibson
  • 2015-03-11 16:15:42
  • 14819

【C++优先队列】

优先队列:顾名思义,首先它是一个队列,但是它强调了“优先”二字,所以,已经不能算是一般意义上的队列了,它的“优先”意指取队首元素时,有一定的选择性,即根据元素的属性选择某一项值最优的出队~ 百度百科上...
  • qq_24653023
  • qq_24653023
  • 2016-07-16 21:18:44
  • 2193

《优先队列》使用及操作符重载——C++

C++ 优先队列 头文件             #include 示例 http://acm.hdu.edu.cn/showproblem.php?pid=1509 #include #incl...
  • a709743744
  • a709743744
  • 2015-12-29 22:04:05
  • 1817

优先队列priority_queue基本操作

队列我们都知道,是一种先进后出的数据结构。 而优先队列是把队列内部的数据,按照一定的优先级排序后,再输出。 值得注意的是,优先队列没有front和back,只有top一种输出方式,这一点很像栈。 ...
  • qq_32680617
  • qq_32680617
  • 2016-03-10 21:29:31
  • 1268

例题5-7 UVA 136 Ugly Numbers丑数(set+优先队列)

这里综合运用了Set 和 优先队列: 整体思路: 凡是2,3,5的倍数的都是丑数,所以可以开一个优先队列(整数越小,优先级越高),先插入1,在插入用1乘以2,3,5得到2,3,5的倍数,然后把优先...
  • aozil_yang
  • aozil_yang
  • 2015-12-22 23:35:42
  • 694

优先队列:自定义大小比较

优先队列自定义优先级
  • DMW2016
  • DMW2016
  • 2017-02-17 14:22:04
  • 840

c++优先队列的基本使用方法

#include #include #include using namespace std; struct node { friend bool operator< (node n1, no...
  • luozhong11
  • luozhong11
  • 2016-07-31 20:16:50
  • 784
收藏助手
不良信息举报
您举报文章:优先队列
举报原因:
原因补充:

(最多只允许输入30个字)