C++ primer 第五版 中文版 练习 11.14 个人code

来源:互联网 发布:俄狄浦斯 知乎 编辑:程序博客网 时间:2024/05/21 13:53

C++ primer 第五版 中文版 练习 11.14 

题目:扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair的vector,保存孩子的名和生日。

答:

注意:以下代码只是能保存一次输入,不是循环输入或者一次输入多个名到生日的pair,但也算是符合本题题意思。

/*扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair的vector,保存孩子的名和生日。*/#include <iostream>#include <map>#include <string>#include <vector>#include <utility>using namespace std;int main(){map<string, vector<string>> famliy = { { "wang", { "yan", "wei" } }, { "li", { "ke", "fei" } } };string famliyname, name, birday;vector<pair<string, string>> name_birday;  //保存名和生日。cout << "请输入姓、名和生日,以空格或者回车格开:";cin >> famliyname >> name>>birday;//根据关键字 “姓”来保存“名”。famliy[famliyname].push_back(name);//保存名到生日的pair到vector。name_birday.push_back(make_pair(name, birday));//输出保存的 姓到名的关联容器的内容for (const auto &w : famliy){cout << "家庭的姓为:" << w.first << " " << "有这些孩子的名:" << " ";for (const auto &a : w.second)cout << a << "、";cout << endl;}//输出保存的 姓到名的pair的内容。for (const auto &n : name_birday)cout <<"名字为:"<< n.first << " " <<"生日为:"<< n.second << endl;return 0;}


0 0