CCF-201703-2
通过这个题目复习一下啊STL-vectorOK!看看题目怎么说解题思路直接上代码,冲啊!总结最后放一下vector的API
通过这个题目复习一下啊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就很方便,很舒服!
最后放一下vector的API