zoukankan      html  css  js  c++  java
  • [洛谷] P1097 统计数字

    题目链接

    AC代码

     1 #include <stdio.h>
     2 #include <map>
     3 #include <set>
     4 using namespace std;
     5 map<int,int> ct_number;
     6 int main()
     7 {
     8     int n;
     9     scanf("%d",&n);
    10     for(int i = 0;i < n;i++)
    11     {
    12         int tmp;
    13         scanf("%d",&tmp);
    14         ct_number[tmp]++;
    15     }
    16     for(map<int,int>::iterator it = ct_number.begin();it != ct_number.end();it++)
    17     {
    18         printf("%d %d
    ",it->first,it->second);
    19     }
    20     return 0;
    21 } 
    View Code

    思路:注意map用法

    如int,和double数组本质是建立了index为整数到一个int或double的映射 int->int,int->double.

    当我们需要建立其他映射,如记录书还剩多少本,书名->int,此时需要映射string->int。此时可以使用map

    1.可以将任何基本类型映射到任何基本类型。

    2.map会以键的大小自动排序(若char->int,键为b,c,a,他会自动排序成a,b,c)

    3.map键与值唯一对应,类似数组。若要键对应多个值,只能用multimap。

    反思:1.map内部结构是红黑树,了解一下红黑树

    2.若不用map应该怎么做

  • 相关阅读:
    java实现同步的两种方式
    JAVA线程概念
    XML基础总结
    JAVA使用和操作properties文件
    JAVA序列化基础知识
    easyui 在编辑状态下,动态修改其他列值。
    Activiti初学问题,求解
    java web--DOM
    java web(1)
    Java WEB
  • 原文地址:https://www.cnblogs.com/Ponytai1/p/12773586.html
Copyright © 2011-2022 走看看