priority_queue 函数库使用

听完左神的课,自己来用stl来实现一下大小根堆,顺便加深一下印象
C++库中带有priority_queue<>函数库可以直接拿来用,默认是大根堆

实现小根堆的时候,很多大神介绍了重载运算符的方法,但是,我自己并不打算用这种方法
大神的讲解

#include<bits/stdc++.h>
using namespace std ;

priority_queue<int> qi ; /// 大根堆的定义

int a[5] = {3,5,9,6,2} ;

struct cmp
{
    bool operator()(int a , int b)
    {
        return  a>b ;
    }
};

int main()
{
    priority_queue<int,vector<int>,cmp> qq ; /// 小根堆的定义,这里重载了cmp,用来实现小根堆
    for(int i = 0 ; i < 5 ; i ++) /// 
    {
        qi.push(a[i]) ;
    }
    for(int i = 0 ; i < 5 ; i ++)
    {
        cout << qi.top() << endl;
        qi.pop() ;
    }
    cout << endl;
    for(int i = 0 ; i < 5 ; i ++)
    {
        qq.push(a[i]) ;
    }
    for(int i = 0 ; i < 5 ; i ++)
    {
        cout << qq.top() << endl;
        qq.pop() ;
    }
    return 0 ;
}

猜你喜欢

转载自blog.csdn.net/lewis_fehling/article/details/80336722