【发布时间】:2019-01-09 07:46:59
【问题描述】:
我想编写一个程序来读取向量中的名称。之后,它应该将年龄读入另一个向量。 (完成) name-vector 的第一个元素应该连接到 age-vector 的第一个元素,所以如果我在 name-vector 上使用任何类型的 sort() 函数,age-vector 也会被排序。 有什么方法可以轻松实现这一点?
class Name_pairs {
public:
//member functions
int read_names();
int read_ages();
int print();
private:
vector<double> age;
vector<string> name;
};
int Name_pairs::read_names() {
cout << "Please enter different names, you want to store in a vector:\n";
for (string names; cin >> names;) {
name.push_back(names);
}
cin.clear();
cout << "You entered following names:\n\t";
for (int i = 0; i < name.size(); i++) {
cout << name[i] << " \n\t";
}
return 0;
}
int Name_pairs::read_ages() {
cout << "\nPlease enter an age for every name in the vector.\n";
for (double ages; cin >> ages;) {
age.push_back(ages);
}
return 0;
}
【问题讨论】:
-
实现这一点的明显方法是使用包含年龄和名称的某个结构的单个向量。
-
也许您想创建一个对象向量,每个对象包含一个名称和一个年龄。
-
和
int是更适合年龄的类型吗?或者你不喜欢用年数来计算? -
@schorsch312 我可以在
int中更改年龄,但想法是您可以输入“10,5”岁。 -
@MatteoItalia 是的,使用 1 个向量会更容易,但我想使用 2 个向量。