stl之map容器的原理及应用

本文介绍了STL中的map容器,基于红黑树实现,用于存储键值对。map容器确保键值唯一,提供键值比较函数。文章讲解了map的创建、元素插入、删除和检索方法,以及其与set容器的区别。
摘要由CSDN通过智能技术生成

        容器的数据结构同样是采用红黑树进行管理,插入的元素健位不允许重复,所使用的节点元素的比较函数,只对元素的健值进行比较,元素的各项数据可通过健值检索出来。map容器是一种关联容器,实现了SortedAssociative Container、Sorted Associative Container和Unique Associative Container概念的接口规范。

map技术原理

图中所示是map容器的一个元素的数据组成,可通过pair封装成一个结构对象。map容器所要做的,就是将这个pair对象插入到红黑树,完成一个元素的添加。同时,也要提供一个仅使用键值进行比较的函数对象,将它传递给红黑树。由此,就可利用红黑树的操作,将map元素数据插入到二叉树中的正确位置,也可以根据键值进行元素的删除和检索。


map应用基础

头文件:#include<map>

创建map对象

1)map(); //创建一个没有任何元素的map对象

2)map(constkey_compare& comp); //指定一个比较函数对象comp来创建map对象,内存分配器为默认值。

3)map(constmap&); //拷贝构造函数,用一个map容器的元素和比较函数,拷贝生成一个新的map容器对象。

4)map(InputIteratorfirst, InputIterator last); //用迭代器区间[first)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值