(666666...数据水)
尾部插入数字:g.push_back(a);
插入元素: g.insert(g.begin()+i,a);在第i+1个元素前面插入a;
删除元素: g.erase(g.begin()+2);删除第3个元素
删除区间[i,j-1];区间从0开始 g.erase(vec.begin()+i,g.end()+j);
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
vector<int>g;
int main()
{
int op,x,n,m,k;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%d",&x);
g.push_back(x);
}
while(m--){
scanf("%d",&op);
if(op==1){
scanf("%d%d",&k,&x);
g.insert(g.begin()+k-1,x);
}
else if(op==2){
scanf("%d",&k);
g.erase(g.begin()+k-1);
}
else
{
scanf("%d",&k);
printf("%d\n",g[k-1]);
}
}
return 0;
}
平衡树么么