zoukankan      html  css  js  c++  java
  • 算法竞赛模板 优先队列

    ①普通重载方法

    priority_queue<int>qu1;                           //默认最大值优先
    priority_queue<int,vector<int>,less<int> >qu2;    //最大值优先 
    priority_queue<int,vector<int>,greater<int> >qu3; //最小值优先

    ②结构体重载方法

    struct node
    {
        int x,y;
        friend bool operator <(node a,node b)
        {
            if(a.x!=b.x)return a.x>b.x; //b.x优先(最小值优先)
            else return a.y<b.y;        //b.y优先(最大值优先)
        }
    };
    priority_queue<node>qu;

    (1) 在优先队列中,一般重载的是 符号;

    (2) 由于在优先队列的内部实现中,判定规则为!cmp,所以我们在规定优先级时要反着来!

    eg. a>b就是谁小谁优先,a<b就是谁大谁优先

    (3) 取队首元素应该用qu.top()

  • 相关阅读:
    poj3268(Silver Cow Party)最短路
    关于Phaser
    关于StampedLock
    关于AQS
    关于Exechanger
    关于Semaphore
    关于CyclicBarrier
    关于CountDownLatch
    关于BlockingQueue
    关于ThreandLocal
  • 原文地址:https://www.cnblogs.com/kannyi/p/8633113.html
Copyright © 2011-2022 走看看