第一篇SET~~STL果真很强大~~~其中也借鉴了不少网上的代码,但是大家都没有注释,当时看的那是一场纠结啊(大雾)。。。下面把我当时有点纠结的地方注释出来了,希望对大家有帮助~~~
#include <cstdio>
#include <set>
using namespace std;
multiset<int>ans;
multiset<int>::iterator c,cc;
int main()
{
char ch[10];
int t, a;
while(~scanf("%d",&t))
{
ans.clear();
while(t--)
{
scanf("%s%d", ch,&a);
if(ch[1]=='u')
{
ans.insert(a);
continue;
}
if(ans.empty()||*ans.begin()>a)
{
printf("No Element!\n");
continue;
}
c=ans.find(a);
if(c!= ans.end())//如果有a了,那就删掉a
{
printf("%d\n",a);
ans.erase(c);
continue;
}
/*没有a就插入a
找到a前面的数,
然后俩个数都删掉
*/
ans.insert(a);
c=cc=ans.find(a);
c--;
printf("%d\n",*c);
ans.erase(c);
ans.erase(cc);
}
puts("");
}
return 0;
}