signed main()
{
IOS;
cin>>n;
vector<int > v;
while(n--)
{
int op,x;
cin>>op>>x;
if(op==1) //插入
{
v.insert(lower_bound(v.begin(),v.end(),x),x);
}
if(op==2) //删除
{
v.erase(lower_bound(v.begin(),v.end(),x));
}
if(op==3) //x的排名
{
auto now = lower_bound(v.begin(),v.end(),x)-v.begin()+1;
cout<<now<<"\n";
}
if(op==4) //排名为x的数
{
cout<<v[x-1]<<"\n";
}
if(op==5) //x前驱节点
{
auto now = lower_bound(v.begin(),v.end(),x);
now--;
cout<<*now<<"\n";
}
if(op==6) //x的后继节点
{
auto now = upper_bound(v.begin(),v.end(),x);
cout<<*now<<"\n";
}
}
return 0;
}
vector在维护数据从小到大排序的情况下插入删去值
最新推荐文章于 2022-11-07 11:29:33 发布