我已经开始学习 C++,这让我很头疼。我编写了一个简单的人员“数据库”应用程序,由于某种原因,它在列出人员时失败了。
string search;
cout << "Give the name: ";
cin >> search;
vector<Person> foundPersons;
for(vector<Person>::iterator it = persons.begin(); it != persons.end(); it++) {
Person p = *it;
if(search == p.getFirstname() || search == p.getSurname()) {
foundPersons.push_back(p);
}
}
if(!foundPersons.empty()) {
cout << "Found " << foundPersons.size() << " person(s).\n\n";
cout << "Firstname\tSurname\t\tBirth year\n";
} else {
cout << "No matches.";
}
for(vector<Person>::iterator it = foundPersons.begin(); it != persons.end(); it++) {
Person p = *it;
cout << p.getFirstname() << "\t\t" << p.getSurname() << "\t" << p.getBirthYear() << "\n";
}
cout << "\n";
persons
是vector<Person>
. 我浏览所有条目并将名称与给定的搜索值进行比较。如果找到,我将这个人添加到foundPersons
向量中。然后我打印No matches
或打印找到的人数和表格标题。接下来,我将遍历所有找到的人员并将其打印到控制台。
如果我添加两个人,例如“Jack Example”和“John Example”,然后搜索“Jack”,它会找到“Jack”并打印出来。但随后程序停止。Windows 显示“程序已停止工作”。在编译期间或程序停止时不会显示任何错误。
怎么了?