题目
题意分析:
有一批水果需要你进行统计,
水果名——地方名——数量
按照题目要求进行排版
解题思路:
利用map<string,map<string,int> > ans来实现,因为map可以实现自动排列,利用迭代器,进行一层一层的输出就行。
map<first(数据类型),second(数据类型)>mp;
mp->first:指向第一个键值;
mp->second:指向第二个键值;
ac代码:
#include<iostream>
#include<map>
#include<string>
#include<queue>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
map<string,map<string,int> >ans;
int n;
cin>>n;
for(int i=0; i<n; i++)
{
string s1;
string s2;
int cnt;
cin>>s1>>s2>>cnt;
ans[s2][s1]+=cnt;
}
map<string,map<string,int> >::iterator it1;
map<string,int>::iterator it2;
for(it1=ans.begin(); it1!=ans.end(); it1++)
{
cout<<it1->first<<endl;
for(it2=it1->second.begin(); it2!=it1->second.end(); it2++)
cout<< " |----" << it2 -> first << "(" << it2 -> second << ")" <<endl;
}
if(t!=0)
cout<<endl;
}
return 0;
}