zoukankan      html  css  js  c++  java
  • 小白鼠排队(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";  

  • 相关阅读:
    #Eclipse web工程 部署 三种方式 3
    Eclipse web工程 部署 三种方式 2
    浅谈Eclipse调用Tomcat服务的原理
    Eclipse web工程 部署 三种方式 1
    java区分绝对路径和相对路径
    设置checkbox不能选中,复选框不能选中
    Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录
    NFS,两台linux设置网络共享文件系统
    dom4j 改变XML声明和编码格式
    笔记本自带wifi
  • 原文地址:https://www.cnblogs.com/ttzz/p/10350456.html
Copyright © 2011-2022 走看看