//============================================================================
// Name : mapExam01.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <string>
#include <iostream>
#include <map>
#include <vector>
using namespace std;
int main() {
map<string,vector<pair<string,string> > > Map;
vector<pair<string,string> > vec;
pair<string,string> pa;
string name ,birthday,faminame,flag;
while(true)
{
cout << "输入家族姓氏" << endl;
cin>> faminame;
if(!cin)
break;
cout << "输入家族的成员名字和生日"<< endl;
while(true)
{
cout << "请输入成员的名字:"<< endl;
//getline(cin,name);
cin >> name;
cout << "请输入成员的生日:";
//getline(cin,birthday);
cin >> birthday;
pa=make_pair(name,birthday);
vec.push_back(pa);
cout << "你是否还需要继续输入(Y|N)" << endl;
cin>>flag;
if(flag.substr(0,1)=="Y" || flag.substr(0,1)=="y")
{
continue;
}
else
break;
}
Map[faminame].insert(Map[faminame].end(),vec.begin(),vec.end());
vec.clear();
cout << "你是否还需要继续输入其他家族名字(Y|N)" << endl;
cin>>flag;
if(flag.substr(0,1)=="Y" || flag.substr(0,1)=="y")
{
continue;
}
else
break;
}
cout << "please input the search faminame" <<endl;
cin>>faminame;
map<string,vector<pair<string,string> > >::iterator found=Map.find(faminame);
if(found!=Map.end())
{
for(vector<pair<string,string> >::iterator i(found->second.begin());i!=(found->second.end());i++)
{
cout << "name:" << (i->first) << endl;
cout << "birthday:" << (i->second)<< endl;
}
}
return 0;
}
C++ primer 根据家族名查找所以的家族成员的名和生日
最新推荐文章于 2024-10-02 08:00:00 发布