• 一个FLAG #16# 优先队列


    例子

    #include <iostream>
    #include <queue>
    #include <vector>
    using namespace std;
    
    struct cmp {
        bool operator() (const int a, const int b) const {
            return a % 10 < b % 10;  
        }
    };
    
    int main()
    {
        // 默认的优先队列。数值越大优先级越高 
        priority_queue<int> pq;
        pq.push(2);
        pq.push(123);
        pq.push(1235);
        pq.push(55);
        pq.push(1230);
        cout << pq.top() << endl; pq.pop(); // => 1235
        cout << pq.top() << endl; pq.pop(); // => 1230
        cout << pq.top() << endl; pq.pop(); // => 123
        cout << pq.top() << endl; pq.pop(); // => 55
        cout << pq.top() << endl; pq.pop(); // => 2
        
        cout << pq.top() << endl; pq.pop(); // => 2
        cout << pq.top() << endl; pq.pop(); // => 2
        cout << pq.top() << endl; pq.pop(); // => 2
        
        cout << " ==================================== == =" << endl;
        // 越小的整数优先级越高
        priority_queue<int, vector<int>, greater<int> > pq2; 
        pq2.push(2);
        pq2.push(123);
        pq2.push(55);
        cout << pq2.top() << endl; pq2.pop(); // => 2
        cout << pq2.top() << endl; pq2.pop(); // => 55
        cout << pq2.top() << endl; pq2.pop(); // => 123
        
        cout << " ==================================== == =" << endl;
        // 自定义的优先队列,个位越大的优先级越高 
        priority_queue<int, vector<int>, cmp> pq3;
        pq3.push(2);
        pq3.push(123);
        pq3.push(55);
        cout << pq3.top() << endl; pq3.pop(); // => 55
        cout << pq3.top() << endl; pq3.pop(); // => 123
        cout << pq3.top() << endl; pq3.pop(); // => 2
            
        return 0;
    }
  • 相关阅读:
    Java的代理proxy机制
    Java 编译器 javac 笔记:javac API、注解处理 API 与 Lombok 原理
    Java 运行时获取方法参数名
    python 之 list 和 dict 置空
    Python 模块(Module)调用
    Python 模块(Module)及包
    Mybatis中进行批量更新(updateBatch)
    可持久化线段树+主席树+动态主席树
    无向图的割点与割边
    [NOIP2016] 愤怒的小鸟 题解
  • 原文地址:https://www.cnblogs.com/xkxf/p/12690174.html
Copyright © 2020-2023  润新知