C++ Primer(第5版) 练习 11.14
练习 11.14 扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair的vector,保存孩子的名和生日。
环境:Linux Ubuntu(云服务器)
工具:vim
代码块
/*************************************************************************
> File Name: ex11.14.cpp
> Author:
> Mail:
> Created Time: Wed 03 Apr 2024 22:45:23 PM CST
************************************************************************/
#include<iostream>
#include<iomanip>
#include<vector>
#include<map>
#include<set>
#include<utility>
#include<algorithm>
using namespace std;
int main(){
map<string, vector<pair<string, string>>> home;
string lastName, firstName, birth;
cout<<"Enter Name, birthday:"<<endl;
cin>>firstName>>lastName>>birth;
home[lastName].push_back(make_pair(firstName, birth));
while(cin>>firstName>>lastName>>birth){
if(home.find(lastName) != home.end()){
home[lastName].push_back(make_pair(firstName, birth));
}
else{
home[lastName].push_back(make_pair(firstName, birth));
}
}
cout<<endl;
cout<<"Name List:"<<endl;
for(const auto h : home){
for(const auto b : h.second){
cout<<setw(8)<<right<<b.first<<" "<<setw(8)<<left<<h.first<<" "<<b.second<<endl;
}
}
return 0;
}