后台开发:核心技术与应用实践3.4.1 map是什么

简介:

3.4 map


3.4.1 map是什么


1.?map的本质

map本质是一类关联式容器,属于模板类关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置类获取。它的特点是增加和删除节点对迭代器的影响很小,除了操作节点,对其他的节点都没有什么影响。对于迭代器来说,不可以修改键值,只能修改其对应的实值。map内部数据的组织,map内部自建一棵红黑树(一种非严格意义上的平衡二叉树),这棵树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。

2.?map的功能

自动建立Key-value的一一对应关系。比如一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,这个模型用map可能轻易描述,很明显学号用int描述,姓名用字符串描述(本篇文章中不用char *来描述字符串,而是采用STL中string来描述),可以使用这样的一个map:Map<int, string> mapStudent;

key和value可以是任意你需要的类型,但是需要注意的是对于key的类型,唯一的约束就是必须支持<操作符。

根据key值快速查找记录,查找的复杂度基本是Log(N),即如果有1000个记录,最多查找10次;1?000?000个记录,最多查找20次。除此之外,还有快速插入Key-Value记录、快速删除记录、根据Key修改value记录、遍历所有记录等功能。

3.?map需要包括的头文件

使用map得包含map类所在的头文件:#include <map> //注意,STL头文件没有扩展名.h。

相关文章
|
4月前
|
Java API 容器
资深Java大牛带你由基础到原理再到项目实战,轻松掌控核心技术
《Java编程的逻辑》致力于帮助读者真正理解Java编程。对于每个语言特性和API,不仅介绍其概念和用法,还分析了为什么要有这个概念,实现原理是什么,背后的思维逻辑是什么;对于类库,分析了大量源码,使读者不仅知其然,还知其所以然,以透彻理解相关知识点。
资深Java大牛带你由基础到原理再到项目实战,轻松掌控核心技术
|
5月前
|
Java 大数据 开发者
Java学习之路:扎实基础、掌握核心特性、多实践交流,成为优秀开发者!
Java学习之路:扎实基础、掌握核心特性、多实践交流,成为优秀开发者!
|
5月前
|
缓存 监控 架构师
价值32k!阿里顶级架构师深度解析SpringBoot进阶原理实战手册
在当下的互联网应用中,业务体系日益复杂,业务功能也在不断地变化。以典型的电商类应用为例,其背后的业务功能复杂度以及快速迭代要求的开发速度,与5年前的同类业务系统相比,面临着诸多新的挑战。这些挑战中核心的一点就是快速高效地实现系统功能,同时保证代码持续可维护,这是一个非常现实且亟待解决的问题。
|
6月前
|
SQL 分布式计算 安全
大数据生态安全框架的实现原理与最佳实践(下篇) 2
大数据生态安全框架的实现原理与最佳实践(下篇)
|
6月前
|
SQL 安全 大数据
大数据生态安全框架的实现原理与最佳实践(下篇) 1
大数据生态安全框架的实现原理与最佳实践(下篇)
|
6月前
|
SQL 分布式计算 安全
大数据生态安全框架的实现原理与最佳实践(上篇) 2
大数据生态安全框架的实现原理与最佳实践(上篇)
|
SQL 缓存 监控
SSM框架源码分析:助你深入理解底层原理,提高核心竞争力
众所周知SSM源码分析教程里面包括Mybatis、Spring以及SpringMVC这三个经典的开源框架的源码分析。我们编程人员技术提升逃不过的一个重要方式就是阅读和理解优秀开源项目的源码,通过阅读和理解优秀开源项目的源码掌握开源项目它底层是如何实现的,领悟大师级的设计思想,开阔自己的视野。在自己实践开发中可以借鉴和参考,以提升自己的(拍晕面试官)阅读复杂代码的能力,以及修炼自我的编码功底。 本套课程就是带你去阅读Mybatis、Spring以及SpringMVC这三个开源框架的源码,掌握这些开源框架的底层原理、执行流程以及它是如何实现的,让你对这些开源框架不再是停留在如何使用的层面,来提高自
172 0
|
大数据
基于DKHadoop的智慧人社服务平台开发案例简述
大数据技术的应用与发展正在让我们的生活经历一场深刻的“变革”,而且这种变革几乎让所有人都感觉非常舒服,自然而然的就完成了这样的一个变化。最根本的原因其实是大数据技术的应用真正帮助我们解决了问题。
1179 0

热门文章

最新文章