C++ Primer 第10章 习题 10.18
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 第10章 习题 10.18
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pycharm安装xlrd失败_Pych
- 下一篇: 简单的外壳(shell)