我需要在代码中擦除位置“ 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;
}
}
}
}
答案 0 :(得分:0)
https://en.cppreference.com/w/cpp/container/vector/erase
iterator erase( iterator pos );
从容器中删除指定的元素。 1)移除 位置上的元素。
因此,假设您确定k是有效输入,请执行以下操作:
v1.erase(v1.begin() + k);