嵌套问题。"/>
stl 容器嵌套问题。
题目描述
李老板很有智慧,在春天的时候去摆摊卖应季水果,例如荔枝,菠萝,桃子啥的。
但李老板是个电脑白痴,他用收银机总是找不到客人买的水果。
所以要求你帮他进行水果分类。
给你 N 种水果,每个水果都有一个名字和一个类别,都是字符串且长度不超过 20。
输入
输入只有一组。
第一行是 n。 (1 ≤ n ≤ 100)
接下来 n 行。
每行输出两个字符串,以空格相隔,分别表示 名字 和 类别。
(1 ≤ |all_string| ≤ 20)
输出
输出参照样例。
类别 和 名字 均按照字典序排序输出。
格式为 三个空格 + “|—” + 一个空格 + 字符串。
样例输入
7
apple red
pineapple yellow
banana yellow
leechee red
peach yellow
watermelon yellow
yangtao green
样例输出
green
|— yangtao
red
|— apple
|— leechee
yellow
|— banana
|— peach
|— pineapple
|— watermelon
#include<iostream>
#include<algorithm>
#include<map>
#include<set>
#include<cstring>
using namespace std;
int main()
{int n;while(cin>>n){map<string,set<string> > mp;string a,b;//前边是名字 后边是种类 for(int i=0;i<n;i++){cin>>a>>b;mp[b].insert(a) ;}//map<string,set<string> > mp::iterator m_it;map<string, set<string> >::iterator m_it;for(m_it=mp.begin() ;m_it!=mp.end() ;m_it++){//for(map <string,set<string> >::iterator it=mp.begin() ;it!=mp.end();it++) cout<<m_it->first<<endl;set<string>::iterator s_it;//(mp->second).begin();// for(s_it=(m_it->second).begin();s_it!=(m_it->scond).end();s_it++)for (s_it = (m_it->second).begin(); s_it != (m_it->second).end(); s_it++){cout << " |--- " << *s_it << endl;}}}return 0;
}
更多推荐
stl 容器嵌套问题。
发布评论