c++11 - 如何在 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;
}
}
}
}
解决方案
https://en.cppreference.com/w/cpp/container/vector/erase
iterator erase( iterator pos );
从容器中擦除指定的元素。1) 移除 pos 处的元素。
所以,假设你确定 k 是一个有效的输入,那么做:
v1.erase(v1.begin() + k);
推荐阅读
- mongodb - 如何重命名嵌入文档的关键字段名称
- facebook - 存储 Facebook Instant Game 排行榜的附加信息
- android - Cordova Hotspot 插件、API 级别和 android 版本
- android - 改造 HTTP 失败:javax.net.ssl.SSLHandshakeException
- haskell - 找不到模块“Data.Set”
- vb.net - 使用 VB.Net 2015 发送十六进制字节的简单 TCP 客户端程序
- reactjs - Heroku 找不到私有 NPM 包
- php - API 调用中未收到 POST 数据
- javascript - 如何在 php 中获取表单字段的值(字段是从 javascript 创建的)?
- html - Bannermover 的第一个 img 不直接跟在 bannermove 的最后一个 img 之后