通过这个题目复习一下啊STL-vector
OK!看看题目怎么说
解题思路
思路很简单,就是先找到对应值的位置,然后把位置移动
那么会出现除掉一个之后,后面的值全部向前移动一个,就要用一个for循环来做
vector帮我们完成了这个过程
因为vector的长度是动态的,对于一些数特别多的题,用vector在数小的时候可以节约不少内存,而且方便骗分呢!
直接上代码,冲啊!
#include<iostream>
#include<vector>
using namespace std;
vector<int> v;
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
v.push_back(i+1);
}
while(m--){
int a,b;
cin>>a>>b;
for(int i=0;i<v.size();i++){
if(v[i]==a){
v.erase(v.begin()+i);
v.insert(v.begin()+i+b,a);
break;
}
}
}
for(int i=0;i<v.size();i++){
cout<<v[i]<<" ";
}
return 0;
}
总结
凡是遇到数组需要增删的用vector就很方便,很舒服!