//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/wwj9413/archive/2012/02/23/2638648.html

C++ Primer 第10章 习题 10.18相关推荐

  1. C++ Primer 第10章 习题10.23

    //10.23.cpp //编写程序将被排除的单词存储在vector对象中,而不是存储在set对象中 //函数restricted_wc,根据形参指定文件建立单词排除集 //将被排除的单词存储在vec ...

  2. C++ Primer 第10章 习题10.24

    //10.24.cpp //建立一个单词排除集 //用于识别以's'借位.但这个结尾的's',又不能删除的单词 //使用这个排除集删除输入单词尾部的's',生成该单词的非复数版本 //如果输入的是排除 ...

  3. Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中

    Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中 题目 程序说明 题目槽点 代码:Test2_BMI.java 运行实例 题目 程序说明 Test2_BMI.java ...

  4. Java黑皮书课后题第10章:*10.26(计算器)修改程序清单7-9,接收一个字符串表达式,其中操作符和操作数由0到多个空格隔开

    第10章:*10.26(计算器) 题目 程序清单7-9 本题代码:大幅优化升级 题目 程序清单7-9 对代码进行了修改:原代码将"."认做乘号,修改后将"*"作 ...

  5. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  6. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字

    Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...

  7. Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类

    Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...

  8. Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))

    Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...

  9. 《C语言入门经典》Ivor Horton第10章习题2

    //习题10.2 编写一个程序,读入以下数值,并输出它们的和: //$3.50,$4.75,$9.95,$2.50 #include<stdio.h> #define count 4 in ...

最新文章

  1. java整数常量区_在Java中,我可以用二进制格式定义一个整数常量吗?
  2. Windows PowerShell in Action
  3. web.py 0.3 新手指南 - 安装
  4. opencv角点检测学习总结
  5. Android项目实战(十三):浅谈EventBus
  6. html value一点就消失,input输入框内文字消失用value和placeholder有什么区别
  7. Vulhub 靶场下载使用
  8. Datrium公司以几近疯狂的方式提升速度表现
  9. php编辑页面代码,0069 PHP编程实现后台网页:新闻创建和编辑
  10. 4.7 什么是深度卷积网络?
  11. JAVA关键字final修饰类,Java入门之认识final关键字、权限修饰符和内部类
  12. paip.基于navicate mysql的自动化报表工具总结
  13. Mysql + keepalived 实现双主热备读写分离
  14. 滤波器基础06——滤波器设计软件
  15. 计算机毕业设计-网上购书系统【代码讲解+安装调试+文档指导】
  16. NPOI导出Excel2007-xlsx格式文件,用于web时需要注意的问题-XSSFWorkbook处理问题
  17. Cocos2dx和Unity3D对比
  18. 上海东方美谷JW万豪、福清喜来登、宁波杭州湾凯悦等酒店开业 | 中国酒店周刊...
  19. Python之Sqlitespy连接并把Excel内容写到数据库的表中
  20. 本地生活服务,快手直播电商外的又一大金矿!

热门文章

  1. officescan客户端迁移和升级
  2. approach for doing things
  3. what should you do if you want to have a high efficiency for communication
  4. while listening lectures
  5. 最近使用的两个工具 winscp和xshell
  6. UNITY 接讯飞语音过程总结
  7. C# 【无法修改XX返回值,因为它不是变量】
  8. 字符串周期--hdu 3746 Cyclic Nacklace
  9. oracle使用存储过程做铺底数据
  10. tp剩余未验证内容-7