结构体的优先级设置

结构体的优先级设置

  1. 此函数将数值小的设置为优先级高,可以这样理解:重载的为小于号<,所以假设传进的是数字的大小按照小的在前面传进来的,而返回值则为设置的优先级的大小,return f1.price>f2.price; 则代表f1.price 的优先级大于f2.price 的优先级
struct fruit{
	string name;
	int price;
	friend bool operator < (fruit f1,fruit f2){  
		return f1.price>f2.price;
	}  //此函数将数值小的设置为优先级高,可以这样理解:重载的为小于号<,所以假设传进的是数字的大小按照小的在前面传进来的,而返回值则为设置的优先级的大小,return f1.price>f2.price; 则代表f1.price 的优先级大于f2.price 的优先级
};
  1. 重载时只能用小于号<,用大于号会报错,因为从数学上来说只需要重载小于号,即f1>f2等价于判断f2<f1,而f1==f2则等价于判断!(f1<f2)&&!(f2>f1)
#include<iostream>
#include<string>
#include<queue>
using namespace std;
struct fruit{
	string name;
	int price;
	friend bool operator < (fruit f1,fruit f2){
		return f1.price>f2.price;
	}
}f1,f2,f3;

int main()
{
	priority_queue<fruit> q;
	f1.name="桃子";
	f1.price=3;
	f2.name="梨子";
	f2.price=4;
	q.push(f1);
	q.push(f2);
	cout<<q.top().name<<" "<<q.top().price<<endl; 
	return 0} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值