博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ Primer 第10章 习题 10.18
阅读量:5299 次
发布时间:2019-06-14

本文共 1260 字,大约阅读时间需要 4 分钟。

//10-18.cpp //定义一个map对象,其元素的键是家族姓氏, //而值则是存储该家族孩子名字的vector对象。 //进行基于家族姓氏的查询,输出该家族的所有孩子的名字 #include<iostream> #include<map> #include<vector> #include<string> using namespace std; int main() { map<string,vector<string> > children; string surname,childName; //读入条目(家族姓氏及其所有孩子的名字发) do { cout<<"Enter surname(Ctrl-Z to end):"<<endl; cin>>surname; if(!cin) //读入结束 break; //插入新条目 vector<string> chd; pair<map<string,vector<string> >::iterator,bool> ret= children.insert(make_pair(surname,chd)); if(!ret.second) //该姓氏已在map容器中存在 { cout<<"repeated surname: "<<surname<<endl; continue; } cout<<"Enter children's name(Ctrl-Z to end):"<<endl; while(cin>>childName) //读入该家族所有孩子的名字 ret.first->second.push_back(childName); cin.clear(); //使输入流从新有效 } while(cin); cin.clear(); //使输入流从新有效 //读入要查询的家族 cout<<"Enter a surname to search:"<<endl; cin>>surname; //根据读入的家族姓氏进行查找 map<string,vector<string> >::iterator iter= children.find(surname); //输出查询结果 if(iter==children.end()) //找不到该家族姓氏 cout<<"no this surname: "<<surname<<endl; else{//找到该家族姓氏 cout<<"children: "<<endl; //输出该家族中所有孩子的名字 vector<string>::iterator it=iter->second.begin(); while(it!=iter->second.end()) cout<<*it++<<endl; } cout<<endl; return 0; }

转载于:https://www.cnblogs.com/springside5/archive/2012/02/23/2486298.html

你可能感兴趣的文章
cf--------(div1)1A. Theatre Square
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
VSCODE更改文件时,提示:EACCES: permission denied的解决办法(mac电脑系统)
查看>>
web前端之路,js的一些好书(摘自聂微东 )
查看>>
【模板】对拍程序
查看>>
Pycharm安装Markdown插件
查看>>
【转】redo与undo
查看>>
C#更新程序设计
查看>>
解决升级系统导致的 curl: (48) An unknown option was passed in to libcurl
查看>>
Java Session 介绍;
查看>>
spoj TBATTLE 质因数分解+二分
查看>>
Django 模型层
查看>>
dedecms讲解-arc.listview.class.php分析,列表页展示
查看>>
Extjs6 经典版 combo下拉框数据的使用及动态传参
查看>>
【NodeJS】http-server.cmd
查看>>
研磨JavaScript系列(五):奇妙的对象
查看>>
面试题2
查看>>
selenium+java iframe定位
查看>>