gpt4 book ai didi

c++ - 尝试在排序后保持年龄/姓名对匹配

转载 作者:太空狗 更新时间:2023-10-29 23:22:00 24 4
gpt4 key购买 nike

我正在编写一个程序,用户可以在其中输入姓名然后输入年龄。然后程序按字母顺序对列表进行排序并输出对。但是,我不确定在按字母顺序排序后如何使年龄与名称匹配。到目前为止我所拥有的只是...

编辑:将代码更改为此 -

#include "std_lib_facilities.h"

struct People{
string name;
int age;
};

int main()
{
vector<People>nameage;
cout << "Enter name then age until done. Press enter, 0, enter to continue.:\n";
People name;
People age;
while(name != "0"){
cin >> name;
nameage.push_back(name);
cin >> age;
nameage.push_back(age);}
vector<People>::iterator i = (nameage.end()-1);
nameage.erase(i);
}

我收到 != 运算符和 cin 运算符的编译器错误。不知道该怎么办。

最佳答案

而不是两个 vector (一个用于名称,一个用于年龄),有一个包含两者的新类型的 vector :

struct Person
{
string name;
double age;
};

vector<Person> people;

编辑评论:

请记住您现在将什么推到 vector 上。您必须推送 Person 类型的内容。您可以通过多种方式执行此操作:

推回一个默认构造的人物,然后设置姓名和年龄字段:

people.push_back(Person());
people.back().name = name;
people.back().age = age;

给 Person 一个带有名字和年龄的构造函数,并推送一个带有一些值的 Person:

struct Person
{
Person(const string& name_, double age_) : name(name_), age(age_) {}
string name;
double age;
};

people.push_back(Person(name, age));

创建一个 Person,给它一些值,然后将其放入 vector 中:

Person person;
person.name = name;
person.age = age;

people.push_back(person);

或者更简单地说:

Person person = { name, age };
people.push_back(person);

(感谢 avakar)

关于c++ - 尝试在排序后保持年龄/姓名对匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1110658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com