小白鼠排队(map容器插入数据的四种方法)
题目描述
输入描述:
多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目。
下面有N行,每行是一只白鼠的信息。第一个为不大于100的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。 注意:白鼠的重量各不相同。
输出描述:
每个案例按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。
输出
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=;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 ;
}
/*
运行时间: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";
小白鼠排队(map容器插入数据的四种方法)的更多相关文章
- SQLServer 批量插入数据的两种方法
		SQLServer 批量插入数据的两种方法-发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Ins ... 
- SQL 2005批量插入数据的二种方法
		SQL 2005批量插入数据的二种方法 Posted on 2010-07-22 18:13 moss_tan_jun 阅读(2635) 评论(2) 编辑 收藏 在SQL Server 中插入一条数据 ... 
- 【AS3】Flash与后台数据交换四种方法整理
		随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法.1.URLLoader(URLStream)2.FlashRemoting3.XMLSo ... 
- SQL Server 批量插入数据的两种方法
		在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍 SQL Server支持的两种批 ... 
- SQL Server 批量插入数据的两种方法(转)
		此文原创自CSDN TJVictor专栏:http://blog.csdn.net/tjvictor/archive/2009/07/18/4360030.aspx 在SQL Server 中插入一条 ... 
- 转:SQL Server 批量插入数据的两种方法
		在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量 ... 
- MySQL批量插入数据的几种方法
		最近公司要求测试数据库的性能,就上网查了一些批量插入数据的代码,发现有好几种不同的用法,插入同样数据的耗时也有区别 别的先不说,先上一段代码与君共享 方法一: package com.bigdata; ... 
- MyBatis 批量插入数据的 3 种方法!
		批量插入功能是我们日常工作中比较常见的业务功能之一,之前我也写过一篇关于<MyBatis Plus 批量数据插入功能,yyds!>的文章,但评论区的反馈不是很好,主要有两个问题:第一,对 ... 
- Hive导入数据的四种方法
		Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在 ... 
随机推荐
- c# Type.InvokeMember用法
			函数原型: public object InvokeMember(string, BindingFlags, Binder, object, object[]);string:你所要调用的函数名Bin ... 
- cxVerticalGrid赋值是实时更新
			procedure TForm1.cxVerticalGrid1Edited(Sender: TObject; ARowProperties: TcxCustomEditorRowProperties ... 
- oracle第二天笔记
			多表查询 /* 多表查询: 笛卡尔积: 实际上是两张表的乘积,但是在实际开发中没有太大意义 格式: select * from 表1,表2 */ select * from emp; select * ... 
- Java IO流学习总结五:转换流-InputStreamReader、OutputStreamWriter
			类的继承关系 Reader |__ BufferedReader.StringReader.InputStreamReader |__ FileReader Writer |__ BufferedWr ... 
- git rebase 合并提交 解决超过100M文件的提交不能推送问题
			git log 现在可以看到有3个提交: change 1.mp4 size to small //发现不能推送,又改回小于100M add 1.mp4 big 改变为超过100M add 1.mp4 ... 
- vue项目bug-Couldn’t find preset "es2015"
			在使用vue项目的时候安装了其他的插件,发现会报错 Couldn’t find preset "es2015".是因引用的插件使用了es标准,解决办法如下 npm install ... 
- 第一个Python脚本!
			# hello.py print 'Hello Pythons' 
- python递归、collections系列以及文件操作进阶
			global log 127.0.0.1 local2 daemon maxconn log 127.0.0.1 local2 info defaults log global mode http t ... 
- ansj
			Ansj中文分词使用教程 Ansj中文分词使用教程:https://blog.csdn.net/a822631129/article/details/52331202 ansj分词史上最详细教程:ht ... 
- 2017面向对象程序设计(Java)第2周学习指导及要求(2017.8.28-2017.9.3)
			学习目标 继续适应老师教学方式的变化,能按照翻转课堂教学要求完成课前知识学习: 掌握Java Application程序结构: 掌握Java的数据类型与变量: 学会使用运算符构造各类表达式: 掌握输入 ... 
