为什么擦除功能在此代码中不起作用?

时间:2019-06-11 18:30:24

标签: c++ c++14

我有两个带有n个元素的向量。现在,我对向量进行了排序,我想从第一个向量中删除最后一个元素,并从第二个向量中删除倒数第二个元素。但是此代码无法正常工作。

我尝试了以下代码。但是擦除甚至pop_back向量都无法正常工作。它只打印与排序后的矢量相同的图像,而没有擦除功能的效果。

    v.erase(v.begin()+n-1);
    v1.erase(v1.begin()+n-2); 
    for(i=0;i<n;i++){
        cout<<v[i];
    }
    for(i=0;i<n;i++){
        cout<<v1[i];
    }

示例-如果我有一个向量2 2 1 5 ..排序后,1 2 2 5.我要删除最后一个即5,它应该是1 22。但是在上面的代码之后,它仍然打印1 2 2 5

1 个答案:

答案 0 :(得分:2)

似乎n应该已经更新,但是没有更新,因此您仍然打印(已擦除)元素。