• 小白鼠排队(map容器插入数据的四种方法)


    题目描述

    N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。

    输入描述:

    多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目。
    下面有N行,每行是一只白鼠的信息。第一个为不大于100的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。
    
    注意:白鼠的重量各不相同。

    输出描述:

    每个案例按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。
    示例1

    输入

    复制
    3
    30 red
    50 blue
    40 green
    

    输出

    复制
    blue
    green
    red
    #include<iostream>
    #include<map>
    #include<string>
    using namespace std;
    int main()
    {
        int N;
        int weight;
        string color;
        while(cin>>N)
        {
            map<int , string> map_mouse;
            for(int i=0;i<N;i++)
            {
                cin>>weight>>color;
                map_mouse.insert(pair<int ,string>(weight,color)); //map插入数据          
            }
            //map的反向遍历
            for(map<int ,string>::reverse_iterator  it=map_mouse.rbegin();it!=map_mouse.rend();it++)
            {
                cout<<it->second<<endl;
            }
        }
        return 0;
    }
    /*
    运行时间:4ms
    
    占用内存:504k
    */

    总结:根据题目很容易想到利用map直接将小白鼠的体重排序,应注意最后应该为逆序输出,即通过reverse_iterator实现反向遍历;

    扩展:

    map容器插入数据的四种方法:

    第一种:如上程序,用insert函数插入pair数据:

    map<int, string> map_mouse;  

    map_mouse.insert(pair<int ,string>(30,"red"));

    map_mouse.insert(pair<int ,string>(50,"blue"));

    map_mouse.insert(pair<int ,string>(40,"green"));

    第二种:用insert函数插入value_type数据:

    map_mouse.insert(map<int, string>::value_type (30, "red"));  

    map_mouse.insert(map<int,string>::value_type(50,"blue"));

    map_mouse.insert(map<int,string>::value_type(40,"green"));

    第三种:在insert函数中使用make_pair()函数

    map_mouse.insert(make_pair(30, "red")); 

    map_mouse.insert(make_pair(50,"blue"));

    map_mouse.insert(make_pair(40,"red"));

    第四种:用数组方式插入数据

     map_mouse[30] = "red";  

     map_mouse[50] = "blue";  

     map_mouse[40] = "green";  

  • 相关阅读:
    scala程序启动时,Could not locate executable nullinwinutils.exe in the Hadoop binaries解决方案
    binlog_format的模式有哪几种?各自的特点是?
    解决IDEA控制台junit不能用Scanner输入问题
    【转】什么是乐观锁,什么是悲观锁
    lyt经典版MySQL基础——流程控制结构
    ambari 2.5.0源码编译安装
    linux(centeros)svn的安装
    机器学习
    算法思想整理
    lucene
  • 原文地址:https://www.cnblogs.com/ttzz/p/10350456.html
Copyright © 2020-2023  润新知