卡码网语言基础课 | 18. 开房门

目录

 一、 map基础

二、 map的使用

2.1 map头文件的引入

 2.2 声明映射关系

2.3 插入键值

2.4 查找键的存在

三、 范围for循环


题目:

假设你手里有一串钥匙,这串钥匙上每把钥匙都有一个编号,对应着一个房门的编号。现给你一个房门编号,你需要判断是否能够打开该房门

输入描述:

第一行整数S,表示共几组测试数据;后面每组中,第一行整数n,表示有几组钥匙编码(k)+房门编码(d),其中每组k d占一行;最后一行,整数x表示测试需要打开的房门编码d。

输出描述:

输出多组,每组占一行。 如果能打开,则输出钥匙编号,不能打开则输出“Can't open the door.”。

输入示例:
2
5
878788 9373833
837837 3837378
378338 3398939
388733 2329389
878373 3938399
3938399
3
998389 3892393
444323 3892783
883782 5334332
8739833


输出示例:
878373
Can't open the door.

 一、 map基础

本次练习将学习哈希表的最后一种实现map映射

  • map、``unordered_map,multimap概念和特点
  • map、``unordered_map,multimap的基本操作,比如创建、插入、删除、查找
  • 范围for循环

通常把map称之为映射,就是将一个元素(通常称之为key键)与一个相对应的值(通常称之为value)关联起来,比如说一个学生的姓名(key)有与之对应的成绩(value),它们是一一对应的,就好像一把钥匙开一扇门,在map中键是唯一的,也只有一个唯一的确定的值。

map中的键是唯一的,但是multimap则没有此限制

 

std::unordered_map 的key值存储是无序的,底层实现为哈希表,查找速度更快,如果不需要排序而只是快速查找键对应的值,可以考虑使用。

std::map 和std::multimap 的底层实现是红黑树,它的key值存储是有序的,如果需要对键值对进行自定义排序,可以考虑使用std::map

二、 map的使用

2.1 map头文件的引入

使用映射容器需要引入头文件<unordered_map>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值