私は単純な電話帳を持っていますが、姓のリストを検索して同じ姓を持つ名を返すように変更したいと考えています。複数の人(家族のメンバー)。一般に、電話番号には数字以外の文字を含めることができます。たとえば、以下のような名前のリストがある場合
john williams
smart williams
hendrix james
drey williams
williams と入力するか、williams を検索すると、返されるはずです
john williams
smart willams
drey williams
使いたいMap<String,List<String>>.
class name {
string str;
public:
name() {
str = "";
}
name(string s) {
str = s;
}
string get() {
return str;
}
};
// Define less than relative to name objects.
bool operator<(name a, name b){
return a.get() < b.get();
}
class surname {
string str;
public:
surname() {
str = "";
}
surname(string s) {
str = s;
}
string get() {
return str;
}
};
int main()
{
map<name, surname> directory;
directory.insert(pair<name, surname>(name("James"), surname("williams")));
directory.insert(pair<name, surname>(name("Coz"), surname("williams")));
directory.insert(pair<name, surname>(name("James"), surname("trues")));
directory.insert(pair<name, surname>(name("Tni"),surname("mutton")));
// given a name, find number
string str;
cout << "Enter name: ";
cin >> str;
map<name, surname>::iterator p;
p = directory.find(name(str));
if(p != directory.end())
cout << "surname: " << p->second.get();
else
cout << "Name not in directory.\n";
system("pause");
return 0;
}
前もって感謝します