#include<iostream>
#include<vector>
#include<map>
#include<string>
using namespace std;
int main()
{
//创建map对象
map<string,vector<pair<string,string>>>msv;//名字和生日
string faname, chname,birth;
//为这个 map 容器输入至少六个条目,输入使用insert。
do{
cout<<"input fathname:"<<endl;
cin>>faname;
if(!cin)
break;
vector<pair<string,string>> vecp;
pair<map<string,vector<pair<string,string>>>::iterator,bool> ret=
msv.insert(make_pair(faname,vecp));
if(!ret.second)
{
cout<<"already exit"<<endl;
continue;
}
cout<<"input"<<endl;
while(cin>>chname>>birth)
ret.first->second.push_back(make_pair(chname,birth));
cin.clear();
}while(cin);
cin.clear();
cout<<"search name:"<<endl;
cin>>faname;
map<string,vector<pair<string,string>>>::iterator iter=msv.find(faname);
if(iter==msv.end())
cout<<"not this lastname"<<endl;
else
{
cout<<"child is:"<<endl;
vector<pair<string,string>>::iterator it=iter->second.begin();
while(it!=iter->second.end())
{
cout<<(*it).first<<" "<<(*it).second<<endl;
it++;
}
}
return 0;
}
定义一个 map 对象,其元素的键是家庭姓氏。map 对象再扩展一下,使其 vector 对象存储 pair 类型的对象,记录每个孩子的名字和生日。相应地修改程序,测试修改后测试程序以检查所编写的 map 是否正确。