定义一个 map,关键字是家庭的姓,值是一个 vector,保存家中孩子的名。编写代码,实现添加新的家庭以及向已有家庭中添加新的孩子。
时间: 2024-05-11 18:16:20 浏览: 69
map key and value
好的,以下是代码:
```
#include <iostream>
#include <map>
#include <vector>
using namespace std;
int main()
{
map<string, vector<string>> families;
// 添加新的家庭以及向已有家庭中添加新的孩子
string familyName, childName;
char choice;
do {
cout << "输入家庭的姓:";
cin >> familyName;
cout << "输入孩子的名字:";
cin >> childName;
// 检查家庭是否已存在
if (families.find(familyName) == families.end()) {
// 如果不存在,新建一个 vector 存储孩子名,并插入到 map 中
vector<string> children = {childName};
families.insert(make_pair(familyName, children));
} else {
// 如果已存在,直接加入到 vector 中
families[familyName].push_back(childName);
}
cout << "还要添加孩子吗?(y/n):";
cin >> choice;
} while (choice == 'y' || choice == 'Y');
// 输出家庭及其成员
cout << "\n所有家庭及其成员名字如下:" << endl;
for (const auto& family : families) {
cout << family.first << " 家的孩子有:";
for (const auto& child : family.second) {
cout << child << " ";
}
cout << endl;
}
return 0;
}
```
你可以在程序中添加新的家庭及其成员名字,并且程序会将它们添加到一个名为 `families` 的 map 中,并输出所有的家庭及其成员。
阅读全文