可根据需求自行调整
#include <bits/stdc++.h>
using namespace std;
struct Node
{
int a, b;
};
bool operator<(Node aa,Node bb) //两个参数之和,从大到小
{
return aa.a+aa.b<bb.a+bb.b;
}
bool operator<(Node aa,Node bb) //两个参数之和,从小到大
{
return aa.a+aa.b>bb.a+bb.b;
}
bool operator<(Node aa,Node bb) //第一个和第二个都是从大到小排
{
return aa.a==bb.a?bb.b>aa.b:aa.a<bb.a;
}
bool operator<(Node aa,Node bb) //第一个从大到小排,第二个从小到大
{
return aa.a==bb.a?bb.b<aa.b:aa.a<bb.a;
}
bool operator<(Node aa,Node bb) //第一个从小到大排,第二个从小到大
{
return aa.a==bb.a?bb.b<aa.b:aa.a>bb.a;
}
bool operator<(Node aa,Node bb) //第一个从小到大排,第二个从大到小
{
return aa.a==bb.a?bb.b>aa.b:aa.a>bb.a;
}
int main()
{
priority_queue<Node>pq;
pq.push({4, 3});
pq.push({2, 3});
pq.push({2, 2});
pq.push({1, 1});
while (!pq.empty())
{
printf("%d %d\n", pq.top().a, pq.top().b);
pq.pop();
}
return 0;
}