题意:动态的插入删除查询数据,允许数据重复
分析:一看就是个multiset,直接做。STL大法好。
代码:
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<vector> #include<set> using namespace std; int n; int a; multiset<int> s; int main() { while(scanf("%d",&n)!=EOF){ s.clear(); multiset<int>::iterator it; for(int i=0;i<n;i++){ scanf("%d",&a); int num; if(a==1){ scanf("%d",&num); s.insert(num); } else if(a==2){ if(!s.empty()){ it=s.begin(); s.erase(it); } } else{ if(!s.empty()){ it=s.end(); it--; printf("%d\n",*it); } else printf("0\n"); }//for(it=s.begin();it!=s.end();it++) cout<<(*it)<<" ";cout<<endl; } } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/ac_0_summer/article/details/47295267