<1>
#include<iostream>
#include<queue>
using namespace std;
int main(){
priority_queue<int> que; //大顶堆
// priority_queue<int,vector<int>,greater<int>> que //小顶堆
que.push(3);
que.push(8);
que.push(4);
que.push(1);
que.push(2);
que.push(3);
cout<<que.size()<<endl;
while(!que.empty()){
cout<<que.top()<<' ';
que.pop();
}
cout<<endl;
return 0;
}
<2>
#include<iostream>
#include<queue>
using namespace std;
struct node{
int x,y;
bool operator<(const node &b)const{
return x < b.x; // 大顶堆
// return x > b.x; // 小顶堆
}
};
int main(){
priority_queue<node> que;
que.push((node){1,5});
que.push((node){3,7});
que.push((node){2,4});
que.push((node){-3,7});
que.push((node){9,0});
while(!que.empty()){
cout<<que.top().x<<endl;
que.pop();
}
return 0;
}
注:代码大部分来源于B站:嵌入式宋老师。
有些为自己整理。