obj2.a; } public: int a; public: apple(int a){ this->a = a; } }; void main(){ priority_queue p; p.push(apple(10)); p.push(apple(9)); p.push(apple(。c++优先级队列实现小值优先方式1。" />

c++优先级队列实现小值优先方式1

#include
using namespace std;
#include "queue"
class apple{
friend bool operator<(const apple &obj1,const apple &obj2){
return obj1.a>obj2.a;
}
public:
int a;
public:
apple(int a){
this->a = a;
}
};
void main(){
priority_queue p;
p.push(apple(10));
p.push(apple(9));
p.push(apple(8));
while (!p.empty()){
cout << p.top().a << endl;
p.pop();
}
system("pause");
}
【c++优先级队列实现小值优先方式1】说明:优先级队列判断优先级的依据是全局函数operator<()函数,只需要修改就行了,注意一定要写成全局函数的形式。

    推荐阅读