2 solutions
-
0
#include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>>n>>m; vector<int >a; for(int i=0;i<n;i++){ int k; cin>>k; a.push_back(k); } while(m--){ int f; cin>>f; if(f==1){ int g,h; cin>>g>>h; if(g==0){ a.insert(a.begin(),h); }else { a.insert(a.begin()+g,h); } }else { int g; cin>>g; a.erase(a.begin()+g-1); } } for(int i=0;i<a.size();i++){ cout<<a[i]<<" "; } return 0; }
-
0
删除一个数的时候要注意迭代器的使用
#include<set> #include<map> #include<vector> #include<algorithm> using namespace std; const int N=1e5+10; vector<int> V; int main() { int k,x,y,n,m,op; cin>>n>>m; for(int i=1;i<=n;i++) { cin>>k; V.push_back(k); } for(int i=0;i<m;i++) { cin>>op; if(op==1) { cin>>x>>y; V.insert(V.begin()+x,y); //在第x数之后插入一个数y } if(op==2) { cin>>x; vector<int>::iterator it=V.erase(V.begin()+x-1); //要删除第x个数这里使用迭代器 } } for(int i=0;i<V.size();i++) { printf("%d ",V[i]); } return 0; }
- 1
Information
- ID
- 838
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 2
- Tags
- # Submissions
- 33
- Accepted
- 23
- Uploaded By