map使用参考链接http://www.cnblogs.com/KID-XiaoYuan/articles/7297709.html
题目
在ACM比赛中,你每解决一道题,你就可以获得一个气球,不同颜色的气球代表你解决了不同的问题。在WJL同学参加的一场ACM比赛中,他发现场面上有N个气球,并熟练的说出了气球的颜色。
请你编写一个程序,找出气球数量最多的颜色。Input有多组样例输入。
每组样例第一行输入一个整数N (0 < N <= 1000) ,代表一共有N个气球。若N=0,则代表输入结束,你不需要输出任何信息。
接下来N行每行输入一个不多于15个字母的字符串代表颜色。Output对于每组样例数据,在单独的一行内输出数量最多的那种颜色的气球。(数据保证输出是唯一的)
Sample Input
5 green red blue red red 3 pink orange pink 0
Sample Output
red pink
题解:
1 #include <iostream> 2 #include <map> 3 #include <string> 4 #include <algorithm> 5 using namespace std; 6 7 bool cmp (pair <string,int> a,pair <string,int> b) 8 { 9 return (a.second < b.second); 10 } 11 int main() 12 { 13 int n; 14 cin>>n; 15 while (n != 0) 16 { 17 map<string,int> map1; 18 for(int i = 0; i < n; i++) 19 { 20 string s; 21 cin>>s; 22 map1[s]++; 23 } 24 map <string,int> ::iterator it; 25 it = max_element(map1.begin(), map1.end(), cmp); 26 cout<<it->first<<endl; 27 cin>>n; 28 29 } 30 return 0; 31 }