2 solutions

  • 0
    @ 2023-6-23 19:08:27
    #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
      @ 2023-2-2 23:15:58

      删除一个数的时候要注意迭代器的使用

      #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