zoukankan      html  css  js  c++  java
  • C++的map用法

    图,自动建立表示关键字和键值(key - value)之间的对应关系,两者可以是任何数据类型,key唯一并且自动排序,value不唯一。

    1.头文件#include<map>

    2.map<string,int>mp;  //例如这个声明,表示字符串和数字的关系,string和int可以换成别的数据类型

    3.clear()  清空操作

    4.begin()  返回容器的第一个对应关系的地址

    5.end()    返回容器的最后一个对应关系的地址

    6.max_size() 返回容器的能存储的对应关系个数,不同数据类型不同,一般用不上

    7.size()   返回容器的关系个数

    8.map赋值

    关系自动建立,形式类似数组,比如:

    map<int,int>mp1;
    map<string,int>mp2;
    map<double,int>mp3;
    mp1[5]=10;
    mp2["sb"]=2;
    mp3[3.66]=1000;

    如果此时mp1[5]=15,那么key=5的value10会被15覆盖

    也可以用插入函数insert(),插入相同key不同value时不会被覆盖,不常用

    9.遍历,用迭代器遍历,it访问的key用it->first,访问value用it->second

    10.erase(key) 删除关键字key所指的键值

    11.count(a)   查找key=a是否存在,存在则返回1,否则返回0

    题目应用:(NYOJ95)

    描述

    所谓众数,就是对于给定的含有N个元素的多重集合,每个元素在S中出现次数最多的成为该元素的重数,

    多重集合S重的重数最大的元素成为众数。例如:S={1,2,2,2,3,5},则多重集S的众数是2,其重数为3。

    现在你的任务是:对于给定的由m个自然数组成的多重集S,计算出S的众数及其重数。

    输入
    第一行为n,表示测试数据组数。(n<30)
    每组测试的第一行是一个整数m,表示多重集S中元素的个数为m
    接下来的一行中给出m(m<100)个不大于10万的自然数
    (不会出现不同元素出现的次数相同的情况,如:S={11,11,22,22,33,33})。
    输出
    每组测试数据输出一行,包含两个数,第一个是众数,第二个是其重数,中间以空格隔开。
    样例输入
    1
    6
    1 2 2 2 3 5
    样例输出
    2 3
    AC代码:
    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<map>
    using namespace std;
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int m,x;
            scanf("%d",&m);
            map<int,int>mp;
            mp.clear();
            while(m--)
            {
                scanf("%d",&x);
                mp[x]++;
            }
            int ans1,ans2=0;
            for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++)
            {
                if(it->second>ans2)
                {
                    ans1=it->first;
                    ans2=it->second;
                }
            }
            printf("%d %d
    ",ans1,ans2);
        }
        return 0;
    }
  • 相关阅读:
    ubuntu下7z文件的解压
    Ubuntu16 编译源码出错 unsupported reloc 43
    两个超级大整数的相加,相乘
    c++ abcd....等等字符所有不同的非重复组合排布
    C# Java 通用MD5加密
    artDialog-学习课程(三) 参数配置表
    artDialog-学习课程(二)-常用弹出框
    MySQL 查看数据库数据表空间大小
    MySQL Date 函数
    artDialog-学习课程(一)-下载与引用
  • 原文地址:https://www.cnblogs.com/shoulinniao/p/9571152.html
Copyright © 2011-2022 走看看