私は 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" という 2 人の人物を追加して "Jack" を検索すると、"Jack" が検出されて出力されます。しかし、その後、プログラムは停止します。Windowsは「プログラムは動作を停止しました」と言います。コンパイル中またはプログラムの停止時にエラーは表示されません。
どうしたの?