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

相关文章
|
8月前
|
存储 数据格式
Set和Map的应用场景
Set和Map的应用场景
|
3月前
|
存储 Java API
详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
【10月更文挑战第19天】深入剖析Java Map:不仅是高效存储键值对的数据结构,更是展现设计艺术的典范。本文从基本概念、设计艺术和使用技巧三个方面,详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
72 3
|
4月前
|
数据处理 Python
Pandas中的map函数应用
Pandas中的map函数应用
24 2
|
4月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
6月前
|
JSON JavaScript API
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
149 0
|
8月前
|
存储 缓存 安全
掌握Go语言:Go语言Map,高效键值对集合的应用与注意事项详解(26)
掌握Go语言:Go语言Map,高效键值对集合的应用与注意事项详解(26)
|
8月前
|
人工智能 自然语言处理 Kubernetes
LLM 技术图谱(LLM Tech Map)& Kubernetes (K8s) 与AIGC的结合应用
LLM 技术图谱(LLM Tech Map)& Kubernetes (K8s) 与AIGC的结合应用
342 0
|
8月前
|
存储 缓存 Java
map应用
map应用
86 0
|
Serverless 数据安全/隐私保护 Python
深入探究Python中的map函数及其应用
深入探究Python中的map函数及其应用
Python的函数式编程指南:Lambda、Map和Filter的应用
Python是一门多范式的编程语言,允许你以不同的方式编写代码,包括面向对象编程、过程式编程和函数式编程。函数式编程是一种强大的编程范式,它强调不可变性、纯函数和高阶函数的使用。本文将引导你了解Python中函数式编程的一些核心概念和技巧,特别是Lambda、Map和Filter的应用。