zoukankan      html  css  js  c++  java
  • C++ 优先队列 priority_queue

    平时定义的时候,直接上就完事了:

    priority_queue<int>Q;

    默认大根堆。

    之前很菜的时候不知道小根堆怎么写,还在考场上干过加个负号甩到大根堆里面去的蠢事。

    它的完整形式呢,其实是长这个样子的:

    //小根堆
    priority_queue <int,vector<int>,greater<int> > Q;
    //大根堆
    priority_queue <int,vector<int>,less<int> >Q;

    然后就是一些特殊的情况:

    用pair的时候,先按first,再按second 自动排序 。

    priority_queue<pair<int,int> >Q;

    如果要自定义排序的话,可以写一个$cmp$:

    struct node{
        int a,b;
    }num[N];
    struct cmp
    {
        bool operator()(const int &p,const int &q)
        {
            if(num[p].b<num[q].b) return 1;
            else return 0;
        }
    };
    priority_queue<int,vector<int>,cmp> Q;

    To be continue...

  • 相关阅读:
    python 类
    python sys模块
    python os模块(2)
    python re模块
    python 最小公倍数
    python 最大公约数
    python datetime模块
    python 给定n,返回n以内的斐波那契数列
    python time模块
    python os模块(1)
  • 原文地址:https://www.cnblogs.com/lyttt/p/11774367.html
Copyright © 2011-2022 走看看