后台开发:核心技术与应用实践3.4.1 map是什么-阿里云开发者社区

开发者社区> 华章计算机> 正文

后台开发:核心技术与应用实践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。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
一起谈.NET技术,Visual Studio 2010中敏捷开发流程模板的应用
  本文将会为您讲述如何使用TFS 2010 MSF Agile 5.0流程模板为迭代项目而提供的工作簿。首先,让我们看一看Visual Studio 2010 IDE中的Team Explorer插件:   接下来,我们将会进入到SharePoint project portal中,为大家展示Team Explorer是如何模拟它的结构的。
737 0
区块链开发公司谈区块链技术的应用
 区块链的采用在地方层面上相当缓慢。但是,新加坡,菲律宾和瑞士等国家已逐步采取支持区块链技术和数字货币的政策。爱沙尼亚在启动电子驻留计划后也引起了一些关注,该计划允许公民在区块链上登记他们的数据。   当然,大规模采用也涉及意识。
1629 0
crudapi零代码开发平台应用场景和成功案例
在前面文章中,已经介绍了crudapi主要功能和使用方式,本文主要介绍crudapi应用场景以及具体的使用方式。
345 0
《Kinect应用开发实战:用最自然的方式与机器对话》一2.3 Kinect相关技术规格
本节书摘来自华章出版社《Kinect应用开发实战:用最自然的方式与机器对话》一书中的第2章,第2.3节,作者 余涛,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1741 0
PostgreSQL技术周刊第28期:应用开发者指南
【点击订阅PostgreSQL技术周刊】 PostgreSQL(简称PG)的开发者们:云栖社区已有5000位PG开发者,发布了3000+PG文章(文章列表),沉淀了700+的PG精品问答(问答列表)。
3550 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载