C++ primer 第五版 中文版 练习 11.23
题目:11.2.1 节练习(第378页)中的map 以孩子的姓为关键字,保存他们的名的vector,用multimap重写此map。
答:
#include <iostream>
#include <map>
#include <string>
#include <vector>
using namespace std;
int main()
{
multimap<string, vector<string>> famliy = { { "wang", { "yan", "wei" } }, { "li", { "ke", "fei" } } };
string famliyname,tmpstrname; //保存姓 和临时名字
vector<string> name; //保存名。
cout << "请输入姓:";
cin >> famliyname;
cout << "请输入名:";
while (cin >> tmpstrname)
{
name.push_back(tmpstrname);
}
//插入到multimap中。
famliy.insert({ famliyname, name });
for (const auto &w : famliy)
{
cout << "家庭的姓为:" << w.first << " " << "有这些孩子的名:" << " ";
for (const auto &a : w.second)
cout << a << "、";
cout << endl;
}
return 0;
}