HDU 1263 二維map
阿新 • • 發佈:2018-12-04
要求:統計各個產地生產的各種水果數目。
Sample Input
1
5
apple shandong 3
pineapple guangdong 1
sugarcane guangdong 1
pineapple guangdong 3
pineapple guangdong 1
Sample Output
guangdong
|----pineapple(5)
|----sugarcane(1)
shandong
|----apple(3)
方法:二維map
二維map定義時最後一個> >中間必須有空格!!!!!!
兩個string對應的int:map<string,map<string,int> >ans;
二維map對應的迭代器:map<string,map<string,int> >::iterator it;
遍歷的for迴圈:for(it=ans.begin();it!=ans.end();it++) //一定要用!=而不能用<
#include<stdio.h> #include<iostream> #include<map> #include<string> #include<algorithm> using namespace std; int main() { int i,j,t,n,num; string s1,s2; scanf("%d",&t); while(t--) { map<string,map<string,int> >ans; scanf("%d",&n); for(i=0;i<n;i++) { cin>>s1>>s2>>num; ans[s2][s1]+=num; } map<string,map<string,int> >::iterator it; for(it=ans.begin();it!=ans.end();it++) { cout<<it->first<<endl; map<string,int>::iterator it_2; for(it_2=it->second.begin();it_2!=it->second.end();it_2++) cout<<" |----"<<it_2->first<<'('<<it_2->second<<')'<<endl; } if(t) cout<<endl; } }