int main(int argc,char **argv) {
map<string, vector<string>> imap;
//ifstream in("ss.txt");
string fname, gname;
cout << "input your family name:\n";
while (cin >> fname) {
cout << "input your given name:\n";
cin >> gname;
imap[fname].push_back(gname);
cout << "input your family name:\n";
}
for (auto f : imap) {
cout << f.first << "家有" << f.second.size() << "小孩。\n他们的名字是:\n";
ostream_iterator<string> out_iter(cout, " ");
copy(f.second.cbegin(), f.second.cend(), out_iter);
cout << endl;
}
}
本文展示了一个使用C++标准模板库(STL)中映射(map)和向量(vector)的数据结构示例。通过用户输入,程序收集家庭成员的名字并将其存储在一个映射中,该映射的键为姓氏,值为一个包含名的向量。最后,程序输出每个家庭的成员数量及具体名字。
314

被折叠的 条评论
为什么被折叠?



