C++中 ,vector的成员是struct,struct的成员有string,double两个类型的数据

C++中,vector的成员是struct,struct的成员有string,double两个类型的数据,想通过string的值删除vector的该struct成员,用e... C++中 ,vector的成员是struct,struct的成员有string,double两个类型的数据,想通过string的值删除vector的该struct成员,用erase怎么实现 展开
 我来答
cqdjyy01234
2013-04-20 · TA获得超过1147个赞
知道小有建树答主
回答量:267
采纳率:50%
帮助的人:303万
展开全部
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
struct value_type{
value_type(const string &_str, const double _a, const double _b): str(_str), a(_a), b(_b){}
string str;
double a,b;
};
struct functor{
string val;
functor(const string &_val): val(_val){}
bool operator()(const value_type &a){
return a.str == val;
}
};
int main(){
typedef vector<value_type> vector_type;
vector_type v;
v.push_back(value_type("abc", 1.0, 2.0));
v.push_back(value_type("abd", 1.0, 2.0));
v.push_back(value_type("abe", 1.0, 2.0));
cout<<"*******************************************************\n";
for(int i = 0; i != v.size(); ++i){
cout<<v[i].str<<"\n";
}
v.erase(remove_if(v.begin(), v.end(), functor("abd")), v.end());
cout<<"*******************************************************\n";
for(int i = 0; i != v.size(); ++i){
cout<<v[i].str<<"\n";
}
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式