#include <functional> #include <iostream> #include <ostream> #include <queue> using namespace std; int main() { //大顶堆 priority_queue<int,vector<int>,less<int>> hinp; int n ; cin >> n; for(int i = 0 ; i < n ; i++){ string s; cin>>s; if(s[0]=='p'&&s[1]=='u'){ //push int t; cin>>t; hinp.push(t); } if(s[0]=='t'){ if(hinp.empty()){ cout<<"empty"<<endl; continue; } cout<<hinp.top()<<endl; } if(s[0]=='p'&&s[1]=='o'){ if(hinp.empty()){ cout<<"empty"<<endl; continue; } cout<<hinp.top()<<endl; hinp.pop(); } } return 0; } // 64 位输出请用 printf("%lld")
less(大根堆) greater(小根堆)使用c++的priority_queue容器实现对大更小更堆的操作