2 solutions

  • 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;
     } 
     
    

    Information

    ID
    838
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    2
    Tags
    # Submissions
    33
    Accepted
    23
    Uploaded By