练习11.7:定义一个map,关键字是家庭的姓,值是一个vector,保存家中孩子(们)的名。编写代码,实现添加新的家庭以及向已有家庭中添加新的孩子。
答:见 练习11.7.cpp
/*
*C++Primer(第五版)
*2015/9/24
*练习11.7
*问题描述:练习11.7:定义一个map,关键字是家庭的姓,值是一个vector,保存家中孩子(们)的名。编写代码,实现添加新的家庭以及向已有家庭中添加新的孩子。
*说明:初次使用map,有点点怯生,其实真用了,也还好
*作者:Nick Feng
*邮箱:NickGreen23@163.com
*/
#include <iostream>
#include <string>
#include <map>
#include <vector>
using namespace std;
int main()
{
//定义一个map
string fname = "", name = "";
vector<string> vec={"Tom","Jerry","Lucy"};
map<string,vector<string>> family = {{"Green",vec},{"White",vec}};
//按照英文名称习惯打印名字,如Tom.Green
for(auto &member : family)
{
cout << "Member is:" << " " << endl;
for(auto it = member.second.begin(); it != member.second.end();++it)
cout << *it << "." << member.first << endl;
cout << endl;
}
//先输入family name,然后自己name
while (cin >> fname >> name)
family[fname].push_back(name);
//再次输出
for(auto &member : family)
{
cout << "Member is:" << " " << endl;
for(auto it = member.second.begin(); it != member.second.end();++it)
cout << *it << "." << member.first << endl;
cout << endl;
}
return 0;
}
本文通过一个具体的示例介绍了如何使用C++中的map和vector来管理家庭成员信息。具体实现了添加新家庭以及向已有家庭中添加新孩子的功能。
&spm=1001.2101.3001.5002&articleId=48721435&d=1&t=3&u=af95575c5e88498583d683f4ee63c489)
33万+

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



