优先队列的使用方法

Posted 最美遇见你

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优先队列的使用方法相关的知识,希望对你有一定的参考价值。

//优先队列:个位数大的整数优先级小
//分析:优先级  个位数大 < 个位数小
priority_queue<int,vector<int>,cmp> 
struct cmp{
    bool operator()(const int a,const int b)const{
        return a%10>b%10;
    }
};

 

//效果相同,都是数字大的优先级高
priority_queue<int>;
priority_queue<int,vector<int>,less<int> >;

 

//数字小的优先级高 
priority_queue<int,vector<int>,greater<int> >; 

 

结构体优先级设置
方法一: 
struct fruit {
    string name;
    int price;
    //价格高的优先级高 
    friend bool operator<(fruit f1,fruit f2)
    {
        return f1.price<f2.price; 
    }
}; 
或者
struct fruit{
    string name;
    int price;
    //价格低的优先级高 
    friend bool operator<(const fruit& f1,const fruit& f2)
    {
        return f1.price>f2.price;
    }
}; 

 

方法二:
struct fruit{
    string name;
    int price;
}; 
struct cmp{
    //价格高的优先级高 
    bool operator()(fruit f1,fruit f2)
    {
        return f1.price < f2.price;
    }
};
或者
struct fruit{
    string name;
    int price;
}; 
struct cmp{
    bool operator()(const fruit& f1,const fruit& f2)
    {
        return f1.price < f2.price;
    }
};

注意!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

优先队列的本质是堆!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

以上是关于优先队列的使用方法的主要内容,如果未能解决你的问题,请参考以下文章

线性表--08---优先队列

基础扩展 | 16. 队列应用示例:广度优先搜索

优先队列

优先队列实现dijkstra算法C++代码

如何使用优先队列对链表进行排序

使用优先级队列的 K 排序数组 - C++