stl之multimap容器
- multimap与map一样,都是使用红黑树对记录型的元素数据按元素键值的比较关系,进行快速的插入、删除和检索操作,所不同的是multimap允许插入具有重复性键值的元素。
- 在multimap容器中,元素的键值与元素的映照数据的映照关系是多对多的,即multimap是多重映照容器。
- 由于元素键值允许重复,使得数组操作符“[]”利用键值来访问元素没有意义,故而multimap并没有定义数组方式的“[]”操作运算。
multimap与map容器共用同一个c++标准头文件map,因此需要加上头文件#include<map>
才能编译运行。
创建multimap对象
- multimap(); //创建一个没有任何元素的multimap对象
- multimap(constkey_compare& comp); //指定一个比较函数对象comp来创建multimap对象,内存分配器为默认值。
- multimap(constmap&); //拷贝构造函数,用一个multimap容器的元素和比较函数,拷贝生成一个新的multimap容器对象。
- multimap(InputIteratorfirst, InputIterator last); //用迭代器区间[first)所指的数据,作为multimap容器的元素(包括键值和映照数据),创建一个multimap容器对象。
元素的插入
与map容器一样,multimap容器可使用insert函数,插入元素到容器的红黑树结构中。但不能像map那样,使用数组操作符“[]”进行元素添加。
pair<iterator,bool>insert(const value_type& v)
将元素v(包括键值和映照数据)插入multimap容器,允许v的键值和容器中的某元素键值重复。返回一个pair配对对象,提供所插入元素的迭代器位置和true/false插入成功标志。iteratorinsert(iterator position, const value type& v)
将元素v(包括键值和映照数据)插入multimap容器,参数position只是提示可在position位置之前插入v,所返回的插入位置视情况而定,不一定在position位置前插入。voidinsert(InputIterator first, InputIterator last)
将迭代器区间[first,last)所指的数据作为容器元素(包括键值和映照数据),插入到multimap容器中。
元素的删除
void erase(iteratorposition)
删除 position所指的元素size_type erase(const key_type& k)
删除等于键值 k的元素,返回删除的元素个数void erase(iterator first, iterator last)
删除map迭代器区间 [first,last)上的所有元素void clear()
删除map容器的所有元素
元素的遍历访问
不同于map容器,multimap容器只能采用迭代器的方式,而不能用数组方式进行遍历。
- iterator begin()
- iterator end()
- reverse_iterator rbegin()
- reverse_iterator rend()
其他函数
与map相同。总之,应用起来还是很方便的,后面会对实现源码进行剖析。
转载请注明出处:http://blog.csdn.net/lsh_2013/article/details/46839513
stl之multimap容器相关推荐
- C++ map容器和multimap容器(STL map容器)
目录 1. 关联容器和map容器概述 2. map容器 2.1 map的创建以及初始化列表 2.2 map容器的一般常用属性(方法) 2.3 插入数据 2.4 数据的访问和遍历 2.5 数据的删除 2 ...
- STL容器系列文章:multimap容器
1. 头文件 #include <map> // 和map容器一样 2. 定义 用于存储多个键相同的键值对pair<const K, T>,底层红黑树RB Tree实现,具有自 ...
- STL标准库-容器-set与map
STL标准库-容器-set与multiset C++的set https://www.cnblogs.com/LearningTheLoad/p/7456024.html STL标准库-容器-map和 ...
- STL——关联式容器
一.关联式容器 标准的STL关联式容器分为set(集合)/map(映射表)两大类,以及这两大类的衍生体multiset(多键集合)和 multimap(多键映射表).这些容器的底层机制均以RB-tre ...
- 【C++】【第六篇-2】【黑马 p215~p242】【list容器】【set/multiset容器】【map/multimap容器】【函数对象】【谓词】【内建函数对象】
[C++][第六篇-2][黑马 p215~p242][list容器][set/multiset容器][map/multimap容器][函数对象][谓词][内建函数对象] 3.7 list容器(p215 ...
- multimap 容器
multimap 容器具有和 map 相同的特性,即 multimap 容器也用于存储 pair<const K, T> 类型的键值对(其中 K 表示键的类型,T 表示值的类型),其中各个 ...
- 【C++ STL学习笔记】C++ STL序列式容器(array,vector,deque,list)
文章目录 C++ STL容器是什么? 迭代器是什么,C++ STL迭代器(iterator)用法详解 迭代器类别 迭代器的定义方式 C++序列式容器(STL序列式容器)是什么 容器中常见的函数成员 C ...
- STL关联式容器详解
STL关联式容器类别 1. map 定义在 头文件中,使用该容器存储的数据,其各个元素的键必须是唯一的(即不能重复),该容器会根据各元素键的大小,默认进行升序排序(调用 std::less). 2. ...
- STL中基本容器有: string、vector、list、deque、set、map
为什么80%的码农都做不了架构师?>>> 在STL中基本容器有: string.vector.list.deque.set.map set 和map都是无序的保存元素,只能通过 ...
最新文章
- [机器学习] 推荐系统之协同过滤算法(转)
- 东大18春计算机基础在线作业,东大18春学期《计算机基础》在线作业123满分答案...
- excel自动调整列宽_Excel双击鼠标的9种用法
- 如何定时备份远程mysql数据库
- 机器学习建模商务合作
- 计算机网络知识点整理
- 计算机网络 自顶向下方法 第四章 网络层
- 理发店收银系统php,理发店收银系统优缺点
- 线性同余法生成随机数
- python sorted方法
- excel软件做折线图
- c语言逻辑运算符两侧运算对象,逻辑运算符两侧运算对象的数据类型是什么?...
- 学微积,用手机,人人“知识共享”学真知
- 关于layer.open()弹出页面与”父页面“之间获取数据赋值给页面Element的问题
- (附源码)计算机毕业设计SSM基于的校园卡管理系统
- On the contrary...
- in和exists的区别
- Java web 服务器 搭建_搭建一个java web服务端
- 微信接口开发申请服务器,开发微信服务器接口的实例教程
- Opera 使用迅雷下载