primer练习11.14

该博客展示了三种不同的C++实现方式,用于记录家庭成员及其生日。通过使用map容器存储家庭与孩子姓名、生日的对应关系,实现了数据的添加和展示功能。程序包括动态输入和预设数据两种情况,方便对家庭成员信息进行管理。
摘要由CSDN通过智能技术生成

//2.记录小孩姓名生日--第一种写法
//void add_family(map < string, vector<pair<string, string>>> &families, const string& family)
//{
//    families[family];
//}
//void add_child(map < string, vector<pair<string, string>>> &families, const string& family, const string& child, const string& birthday)
//{
//    families[family].push_back({ child, birthday });
//}
//int main()
//{
//    map < string, vector<pair<string, string>>> families;
//    add_family(families, "张");
//    add_child(families, "张","清","1998-1");
//    add_child(families, "王","清","1998-1");
//    add_family(families, "王");
//    for (auto m : families)
//    {
//        cout << m.first << "家的孩子";
//        for (auto n : m.second)
//        {
//            cout << n.first << "生日" << n.second ;
//        }
//        cout << endl;
//    }
//    return 0;
//}
//2,第二种写法
// //int main()
//{
//    map < string, vector<pair<string, string>>> families;
//    string famliyname, name, birday;
//    cin >> famliyname >> name >> birday;
//    /*families[famliyname];*/
//    families[famliyname].push_back({ name, birday })
//    for (auto m : families)
//    {
//        cout << m.first << "家的孩子";
//        for (auto n : m.second)
//        {
//            cout << n.first << "生日" << n.second;
//        }
//        cout << endl;
//    }
//    return 0;
//}

//2,第三种写法
/// 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;
//
//}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值