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

C++ 为什么擦除功能在此代码中不起作用?,c++,c++14,C++,C++14,我有一个包含n个元素的两个向量。现在我已经对向量进行了排序,我想从第一个向量中删除最后一个元素,从第二个向量中删除最后一个元素。但是这个代码不起作用 我已经尝试了下面的代码。但是擦除,甚至弹出返回向量都不起作用。它只打印与排序向量相同的内容,不受擦除功能的影响 v.erase(v.begin()+n-1); v1.erase(v1.begin()+n-2); for(i=0;i<n;i++){ cout<<v[i]; }

我有一个包含n个元素的两个向量。现在我已经对向量进行了排序,我想从第一个向量中删除最后一个元素,从第二个向量中删除最后一个元素。但是这个代码不起作用

我已经尝试了下面的代码。但是擦除,甚至弹出返回向量都不起作用。它只打印与排序向量相同的内容,不受擦除功能的影响

    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];
    }
v.erase(v.begin()+n-1);
v1.擦除(v1.开始()+n-2);

对于(i=0;i它看起来像是
n
应该已经更新,但是没有更新,所以您仍然打印(删除的)元素。

请发布一个最小的、完整的、可验证的示例-也就是说,我们可以编译并运行一个完整的程序来演示问题,而不必添加“#include”或“int main”或者我们自己做的任何事情。您是否尝试检查向量大小?提示:在擦除n个元素中的一个之后,您希望向量包含多少个元素?擦除功能工作正常。您的打印循环错误,并且访问两个向量末尾之后的元素。@AkashRoy“我将删除它”你不能,也不应该。你的问题有一个上等票的答案。要注意改进你的问题,否则你会被拖到一个更高的位置。