C++ STL priority_queue

优先队列: 与队列的用法是一样的,优先队列内部是通过堆来排序实现的,

#include<iostream>
#include <queue>
using namespace std;
int main(){
    //默认是大顶堆
    priority_queue<int> large; // 这两种写法是相同的   priority_queue<int,vector<int>, less<int>> large;

    // 第一个int表示队列的元素类型,这里一定要有空格,不然成了右移运算符↓↓
    priority_queue<int, vector<int>, greater<int> > small;  //小顶堆,升序

    for (int i = 0; i < 5; i++){
        large.push(i);
        small.push(i);
    }
    while (!large.empty()){
        cout << large.top() << ' ';
        large.pop();
    }
    //输出结果:4 3 2 1 0
    cout << endl;

    while (!small.empty()){
        cout << small.top() << ' ';
        small.pop();
    }
    //输出结果:0 1 2 3 4
    return 0;
}

 leetcode 优先队列示例:

 https://github.com/AntonioSu/leetcode/blob/master/problems/239.SlidingWindowMaximum.md

 https://github.com/AntonioSu/leetcode/blob/master/problems/295.FindMedianfromDataStream.md

猜你喜欢

转载自www.cnblogs.com/AntonioSu/p/11910546.html
今日推荐