题目链接:hdu 1263
题目:中文题
思想:是STL库中map的实践,一维映射对应一维数组,二维映射对应的是二维数组。以及内迭代器的使用。
对了,map,放在里面的映射会自动字典序排序,了解一下~
代码讲解:
计蒜客题目请手动去掉 T
#include<cstdio>
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
int main(){
int T;
cin >> T;
while(T--){
map<string,map<string,int> >ss;//定义二维map
string f,p;
int n;
cin >> n;
map<string , map<string , int> > ::iterator it;//外迭代器
map<string , int> :: iterator it2;//内迭代器
while(n--){
int m;
cin >> f >> p >> m;
ss[p][f] += m;
}
for(it = ss.begin(); it != ss.end(); it++){//外迭代器的遍历
cout << it->first <<endl;
for(it2 = it->second.begin(); it2 != it->second.end(); it2++)//内迭代器遍历
cout << " |----" << it2->first << "(" << it2->second<<")"<< endl;
}
if (T != 0)cout <<endl;//该死的格式~
}
return 0;
}