首页 > 解决方案 > 如何在 C++ 中擦除 VECTOR LIST 的元素?

问题描述

我需要在我的代码中删除位置“k”的元素,假设我在 K 中得到了“3”,所以我想删除向量列表中位置 3 的成员。解决办法是什么?提前致谢 !



using namespace std ;

int main() 
{ 
    vector<double> v1;
    vector <double>v2;
    double a ;
    for (int i=0;i<6;i++)
    {
        cout<<"Enter values :";
        cin>>a;

        v1.push_back(a);
    }
    cout<<endl;

    for (int i=0;i<6;i++)
    {
        for (int k=0;k<6;k++)
        {

                if (v1[i]==v1[k] && i!=k && k>i)
                {
                    cout<<"FOUND A REPEATING MEMBER IN VECTOR :"<<endl;
                    cout<<"repeating position: "<<k<<endl;
                    cout<<v1[k]<<endl;  
                    cout<<"ERASING MEMBER AT POSITION "<<k<<endl;
                    v1.erase(v1[k],v1.end());  //ERROR HERE!
                    cout<<"DONE"<<endl;
                }
        }
    }
}

标签: c++11arraylistvector

解决方案


https://en.cppreference.com/w/cpp/container/vector/erase

iterator erase( iterator pos );

从容器中擦除指定的元素。1) 移除 pos 处的元素。

所以,假设你确定 k 是一个有效的输入,那么做:

 v1.erase(v1.begin() + k);

推荐阅读