zoukankan      html  css  js  c++  java
  • map对象建立家族姓氏查询


    题目:定义一个map对象,其元素的键是家族姓氏,而值是存储该家族孩子名字的vector对象。为这个map容器输入至少六个条目。通过基于家族姓氏的查询检测你的程序,查询应输出该家族所有孩子的名字。

    //定义一个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: "<<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: "<<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;
    	}
    
    	return 0;
    }


  • 相关阅读:
    模块
    javacript一键换肤
    ajax请求
    jquery获取元素的方法
    ajax请求里的contentType: "application/json"作用
    Underscore.js 入门-常用方法介绍
    .NET Core调用WCF的最佳实践
    证伪主义——科学与伪科学的量尺
    高效的筒仓
    此时此刻,一个项目正在走向失败
  • 原文地址:https://www.cnblogs.com/james1207/p/3301789.html
Copyright © 2011-2022 走看看