题目描述
题目大意:(中文体面,pass)
思路:输出水果销售情况明细表并按照字典序,看到字典序,第一反应就是STL中的map自带字典序,但是本题含地点,水果名两个需要排序的项目,于是我们想到用map去映射map,也是map的二维应用!
map<string,map<string,int> >m; //后面的两个大于号中间留个空格,否则会被当成右移运算符:
第一个string为水果产地,包含着许多不同种类的水果(第二个string)以及销量
代码:
#include<iostream>
#include<map>
#include<string>
#include<algorithm>
#include<cstring>
#include <cstdio>
using namespace std;
int main()
{
int n,m;
cin>>n;
while(n--)
{
map<string,map<string,int> > mp;
string pl,f;
int cnt;
cin>>m;
for(int i=0;i<m;i++)
{
cin>>f>>pl>>cnt;
mp[pl][f]+=cnt;
}
map<string,map<string,int> >::iterator it1;
for(it1=mp.begin();it1!=mp.end();it1++)
{
cout<<it1->first<<endl;
map<string,int>::iterator
for( it=it1->second.begin();it!=it1->second.end();it++)
{
cout<<" |----"<<it->first<<"("<<it->second<<")"<<endl;
}
}
if(n)cout<<endl;
}
return 0;
}