我是一名新手程序员,正在编写一个管理宠物旅馆登记的程序(这只是课堂上的一些愚蠢练习,不要紧)。我使用向量来保存结构体元素(宠物)。结构体的代码如下:
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);
}
好的,现在我需要创建一个函数来通过名称或其他方式删除宠物。有没有什么方法可以做到这一点?
std::vector
的函数push_back()
将它们添加进去。看一下还有哪些其他的std::vector
函数可以帮助你移除一个元素! - NoseKnowsAllPets
з»“жһ„пјҢдҪҝз”Ёstd::map<std::string, Pets>
жҜ”дҪҝз”Ёvector
жӣҙиҮӘ然 - дҪ еҸҜд»ҘйҖҡиҝҮvtnew[newpet.Name] = newpet;
жқҘж·»еҠ е® зү©пјҲеҸҜиғҪйңҖиҰҒе°Ҷvtnew
еҸҳйҮҸеҗҚжӣҙж”№дёәжӣҙе…·жҸҸиҝ°жҖ§зҡ„еҗҚз§°пјүпјҢ并йҖҡиҝҮvtnew.erase(some_pet_name);
жқҘеҲ йҷӨгҖӮ - Tony Delroymap
用于外部键,set
用于内部键。但是,您需要提供自己的OrderPetsByName
比较函数。 - MSaltersset<>
的内存利用率更高,但考虑到Dave刚开始学习这个,使用map
更方便且功能齐全。(或者如果名称不保证唯一,可以考虑使用multimap
)。 - Tony Delroy