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;
下一篇:
算法入门——顺序查找、二分查找