C++定义结构体大小根堆的方法
#include <iostream>
#include <queue>
#include <string>
using namespace std;
struct Pair
{
int id;
string data;
};
bool operator<(Pair p1,Pair p2){
return p1.id<p2.id;
}
int main() {
//大根堆
priority_queue<Pair> tmp;
tmp.push({
3,"a"});
tmp.push({
2,"b"});
cout<<tmp.top().data;//结果为a
}
#include <iostream>
#include <queue>
#include <string>
using namespace std;
struct Pair
{
int id;
string data;
};
bool operator<(Pair p1,Pair p2){
return p1.id>p2.id;
}
int main() {
//小根堆
priority_queue<Pair> tmp;
tmp.push({
3,"a"});
tmp.push({
2,"b"});
cout<<tmp.top().data;//结果为b
}
//int型的定义 //1.大根堆:priority_queue<int> tmp; //2.小根堆:priority_queue<int,vector<int>,greater<int>> tmp;
下一篇:
算法入门——顺序查找、二分查找
