【发布时间】:2015-08-19 03:56:14
【问题描述】:
我正在开发一个在酒店中记录宠物的程序(家庭作业)。我正在使用向量来保存结构元素(宠物)。结构的代码是这样的:
struct Pets{
string Name;
string Race;
string Owner;
int Tel;
}p;
请求用户输入的函数是这样的:
AddPet(vector<Pets> &vtnew)
{
Pets newpet;
cout << "Enter the pet's name: " << endl;
cin >> newpet.Name;
cout << "Enter the pet's race: " << endl;
cin >> newpet.Race;
cout << "Enter the owner's name: " << endl;
cin >> newpet.Owner;
cout << "Enter the owner's telephone number: " << endl;
cin >> newpet.Tel;
vtnew.push_back(newpet);
}
好的,现在我需要创建一个函数来通过输入名称来修改宠物。我有一个删除宠物的功能,它是这样的:
void RemovePet(vector<Pets> &pet, std::string nombre){
pet.erase(
std::remove_if(pet.begin(), pet.end(), [&](Pets const & pet) {
return pet.Name == name;
}),
pet.end());
}
有没有类似的修改元素的方法?
【问题讨论】:
-
修改哪个元素?你刚推的那个?说真的,C++ 复杂到足以阅读。尝试命名您的集合和您的 lambda 枚举参数 something 不同。仅仅因为你可以并不意味着你应该。