map/multimap_01
标准的关联式容器
键值对序列
基于key的快速检索能力
key按序排列,按序插入
红黑树变体的平衡二叉树
对key来说支持 mapT[key] 和 mapT.at(key)
multimap 不支持 multimapT[key] 和 multimapT.at(key)
A、头尾 添加/移除
B、随机存取
C、数据存取
1、构造函数
1.1、默认构造函数 ==> 无参构造函数
1.2、必定需要 复制构造函数 :map<T1,T2> mapTT(const map<T1,T2>& mapTT02);
2、赋值
2.1、重载"="操作符
map& = const map& map1;
3、迭代器操作
3.1、const_iterator map<T>::begin(); // 第1个
3.2、const_iterator map<T>::end(); // 最后1个
3.3、const_reverse_iterator map<T>::rbegin(); // 倒数第1个
3.4、const_reverse_iterator map<T>::rend(); // 倒数最后1个
4、插入
4.1、std::pair<map<T1,T2>::iterator, bool> pairA = map::insert(pair<T1,T2>(key, value));
4.2、std::pair<map<T1,T2>::iterator, bool> pairB = map::insert(map<T1,T2>::value_type(key, value));
4.3、mapTT[key1] = value1; 性能问题
先查找有无主键为 key1的项
--> 无
--> 新建 主键为key1 值为value1 的项 初始化值的对组,插入map中
--> 有
--> 原来的 mapTT[key1] ,将值改为 value1
5、删除
void map::clear();
iterator map::erase(const_iterator beg, const_iterator end); // [beg, end)区间,返回下一个元素的位置
iterator map::erase(const_iterator pos); // 返回下一个元素的位置
size_type map::erase(key_type keyElem); // 删除 容器中 key为keyElem的对组。返回的是删掉的个数?
6、交换
void map<T>::swap(map<T>&);
7、大小
size_type map<T>::size();
bool map<T>::empty();
8、查找
iterator map::find(key); // 查找key是否存在。存在:返回元素迭代器;不存在:返回map::end()
size_type map::count(key_type keyElem); // 返回容器中key为keyElem的对组个数
iterator map::lower_bound(key_type keyElem); // 返回第一个key>=keyElem元素的迭代器
iterator map::upper_bound(key_type keyElem); // 返回第一个key>keyElem元素的迭代器
std::pair<map<T1,T2>::iterator, map<T1,T2>::iterator> pair01 = mapTT.equal_range(key_type keyElem); // 返回容器中 key为keyElem的区间。上限是闭区间,下限是开区间。如[beg, end)
map/multimap_01的更多相关文章
- mapreduce中一个map多个输入路径
package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...
- .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法
.NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Java基础Map接口+Collections
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- 多用多学之Java中的Set,List,Map
很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进 ...
- Java版本:识别Json字符串并分隔成Map集合
前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...
- MapReduce剖析笔记之八: Map输出数据的处理类MapOutputBuffer分析
在上一节我们分析了Child子进程启动,处理Map.Reduce任务的主要过程,但对于一些细节没有分析,这一节主要对MapOutputBuffer这个关键类进行分析. MapOutputBuffer顾 ...
- MapReduce剖析笔记之七:Child子进程处理Map和Reduce任务的主要流程
在上一节我们分析了TaskTracker如何对JobTracker分配过来的任务进行初始化,并创建各类JVM启动所需的信息,最终创建JVM的整个过程,本节我们继续来看,JVM启动后,执行的是Child ...
- MapReduce剖析笔记之五:Map与Reduce任务分配过程
在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体 ...
随机推荐
- notification 是同步的
所有notification的观察者执行之后,post notification的函数才会往下执行.
- java实现Comparable接口和Comparator接口,并重写compareTo方法和compare方法
原文地址https://segmentfault.com/a/1190000005738975 实体类:java.lang.Comparable(接口) + comareTo(重写方法),业务排序类 ...
- shell应用技巧
Shell 应用技巧 Shell是一个命令解释器,是在内核之上和内核交互的一个层面. Shell有很多种,我们所使用的的带提示符的那种属于/bin/bash,几乎所有的linux系统缺省就是这种she ...
- 找回丢失的mysql服务的root用户的密码
一.关闭mysqld服务.服务名称则根据电脑上的实际服务名来决定,windows下则用以管理员身份运行cmd.exe程序,然后输入:net stop mysql的服务名称. 二.打开一个cmd窗口,以 ...
- Python: collections.nametuple()--映射名称到序列元素
问题: 通过下标访问列表或者元组中元素 answer: collections.namedtuple()通过使用元组对象来解决这个问题 这个函数实际上是一个返回Python中标准元组类型子类的一个工 ...
- jdk自带的ThreadLocal和netty扩展的FastThreadLocal比较总结
最近在分析一潜在内存泄露问题的时候,jmap出来中有很多的FastThreadLocalThread实例,看了下javadoc,如下: A special variant of ThreadLocal ...
- 实现windows命令提示符的tab补全
1:使用win+r打开 运行 控制台 2:输入 regedit 打开注册表 3:进入 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\C ...
- 20145216史婧瑶《网络对抗》Web安全基础实践
20145216史婧瑶<网络对抗>Web安全基础实践 实验问题回答 (1)SQL注入攻击原理,如何防御 攻击原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些 ...
- GD32芯片移植完全攻略
GD32是国产兆易创新公司生产的完全兼容STM32系列的Cortex-M3处理器,具有几大亮点:1,高主频108MHz.性能提升30%以上,可超频到120MHz2,Flash零等待.STM32的72M ...
- Spring Boot + thymeleaf 实现文件上传下载
参考博客:https://juejin.im/post/5a326dcaf265da431048685e 技术选型:spring boot 2.1.1+thymeleaf+maven 码云地址:htt ...