zoukankan      html  css  js  c++  java
  • 一个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;
    }
  • 相关阅读:
    第11组 团队Git现场编程实战
    团队项目-需求分析报告
    团队项目-选题报告
    第10组 Alpha事后诸葛亮
    第10组 Alpha冲刺(6/6)
    第10组 Alpha冲刺(5/6)
    第10组 Alpha冲刺(4/6)
    第10组 Alpha冲刺(3/6)
    第10组 Alpha冲刺(2/6)
    第10组 Alpha冲刺(1/6)
  • 原文地址:https://www.cnblogs.com/xkxf/p/12690174.html
Copyright © 2011-2022 走看看