zoukankan      html  css  js  c++  java
  • UVa 10420

      题目大意:有n个人,给出每个人的国籍,统计每个国家的人数。

      用map<string, int>做的。

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <map>
     4 #include <string>
     5 #include <algorithm>
     6 using namespace std;
     7 #define MAXN 2000+10
     8 
     9 map<string, int> m;
    10 string str[MAXN];
    11 
    12 int main()
    13 {
    14 #ifdef LOCAL
    15     freopen("in", "r", stdin);
    16 #endif
    17     int n;
    18     scanf("%d", &n);
    19     getchar();
    20     char s1[80], s2[80];
    21     m.clear();
    22     map<string, int>::iterator it;
    23     while (n--)
    24     {
    25         gets(s1);
    26         sscanf(s1, "%s", s2);
    27         string t = s2;
    28         it = m.find(t);
    29         if (it != m.end())  m[t]++;
    30         else  m[t] = 1;
    31     }
    32     int p = 0;
    33     for (it = m.begin(); it != m.end(); it++)
    34         str[p++] = it->first;
    35     sort(str, str+p);
    36     for (int i = 0; i < p; i++)
    37         cout << str[i] << " " << m[str[i]] << endl;
    38     return 0;
    39 }
    View Code

      


      当时就是大概看了看别人写的map用法的代码就开始写了,今天又看了看书,发现其实当时写的挺麻烦的:增加数据只用m[key]++;就足够了,而按字典序输出...根本就不用的,在map内部默认就是按key的升序进行排列的,直接输出就好了,想当初为这个纠结的啊...

      不过我觉得这种学习方式还是不错的,够直观,有问题就去找资料,学习然后改正,能从中发现乐趣并可以获得一点成就感,相对于系统地看一遍书,书中直接告诉你如何如何,我现在更喜欢这种方式,毕竟我一直有着“只学现在的我感觉能用到的东西”这种“临时抱佛脚”的想法。                            

                                                                      @2013-09-01

  • 相关阅读:
    C#开源框架
    8 种 NoSQL 数据库系统对比
    安装补丁“此更新不适用于你的计算机”解决办法
    .net开源资料
    winform程序退出
    jquery.chained与jquery.chained.remote使用以及区别
    存储过程使用回滚
    C# Panel中绘图如何出现滚动条
    C#结构体的特点浅析
    如何用堆栈和循环结构代替递归调用--递归转换为非递归的10条军规
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3287871.html
Copyright © 2011-2022 走看看