C++ primer 4th 第10章《关联容器》总结

10-1 关联容器类型

map

关联数组:元素通过键来存储和读取

set

大小可变的集合,支持通过键实现的快速读取

multimap

支持同一个键多次出现的map类型

multimap

支持同一个键多次出现的set类型

 

10-2 pair类型提供的操作

pair<T1,T2> p1;

创建一个空的pair对象,它的两个元素分别是T1T2类型,采用值初始化

pair<T1,T2> p1(v1, v2);

创建一个pair对象,它的两个元素分别是T1T2类型,其中first成员初始化为v1,而second成员初始化为v2

make_pair(v1, v2);

v1v2值创建一个新的pair对象,其元素类型分别是v1v2的类型

p1 < p2

两个pair对象之间的小雨运算,其定义遵循字典次序:如果p1.first<p2.first 或者 (p2.first<p1.first)&&p1.seond<p2.second,则返回true

p1 == p2

如果两个pair对象的firstsecond成员依次相等,则这两个对象相等。该运算使用其元素的==操作符

p.first

返回p中名为first的公有数据成员

p.second

返回p中名为second的公有数据成员

 

10-3 map的构造函数

map<k, v> m;

创建一个名为m的空map对象,其键和值的类型分别为kv

map<k, v> m(m2);

创建m2的副本mmm2必须有相同的键类型和值类型

map<k, v> m(b, e);

创建map类型的对象m,存储迭代器be标记的范围内所有元素的副本。元素的类型必须能转换为pair<const k, v>

注:对于键类型,唯一的约束就是必须支持 < 操作符

 

10-4 map类定义的类型

map<K, V>::key_type

map容器中,用做索引的键的类型

map<K, V>::mapped_type

map容器中,键所关联的值的类型

map<K, V>::value_type

一个pair类型,它的first元素具有const map<K, V>::key_type类型,而second元素则为map<K, V>::mapped_type类型

注:map迭代器进行解引用将产生pair类型的对象

 

10-5 map容器提供的insert操作

m.insert( e )

e是一个用在m上的value_type类型的值。如果键(e.first)不在m中,则插入一个值为e.second的元素;如果该键在m中已存在,则保持m不变。该函数返回一个pair类型对象,包含指向键为e.first的元素的map迭代器,以及一个bool类型的对象,表示是否插入了该元素

m.insert(beg, end)

begend是标记元素范围的迭代器,其中的元素必须为m.value_type类型的键-值对。对于该范围内的所有元素,如果它的键在m中不存在,则将该键及其关联的值插入到m。返回void类型

m.insert(iter, e)

e是一个用在m上的value_type类型的值。如果键(e.first)不在m中,则创建新元素,并以迭代器iter为起点搜索新元素存储的位置。返回一个迭代器,指向m中具有给定键的元素

 

10-6 不修改map对象的查询操作

m.count(k)

返回mk的出现次数

m.find(k)

如果m容器中存在按k索引的元素,则返回指向该元素的迭代器。如果不存在,则返回超出末端迭代器

注:使用count检查map对象中某键是否存在,如果存在,可用下标操作访问该元素,实际上这指向了两次查找。如果希望存在该元素就访问,可用find

 

10-7 map对象中删除元素

m.erase(k)

删除m中键为k的元素。返回size_type类型的值,表示删除的元素个数

m.erase(p)

m中删除迭代器p所指向的元素。p必须指向m中确实存在的元素,而且不能等于m.end()。返回void类型

m.erase(b, e)

m中删除一段范围内的元素,该范围由迭代器对be标记。be必须标记m中的一段有效范围:即be都必须指向m中的元素或最后一个元素的下一位置。而且,be要么相等(此时删除的范围为空),要么b所指向的元素必须出现在e所指向的元素之前。返回void类型

 

10-8 返回迭代器的关联容器操作

m.lower_bound(k)

返回一个迭代器,指向键不小于k的第一个元素

m.upper_bound(k)

返回一个迭代器,指向大于k的第一个元素

m.equal_range(k)

返回一个迭代器的pair对象

它的first成员等价于m.lower_bound(k)。而second成员则等价于m.upper_bound(k)

 

转载于:https://www.cnblogs.com/crazyant/archive/2011/06/06/2073862.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强势~迷惑法应对

1、承认事实&#xff1b; 2、承认可能性&#xff1b; 3、原则上同意。 1、承认事实&#xff1b; 母亲&#xff1a;莎莉&#xff0c;你有很晚才回家。昨晚我到12点半&#xff0c;还给你打过电话呢。莎莉&#xff1a;是的&#xff0c;妈妈&#xff0c;昨晚我又回来得很晚。 2…

Hack.Chat 在浏览器里快速建立简单、随用即丢线上聊天室,无须下载安装软体

From&#xff1a;http://www.luoxiao123.cn/1554-6.html 有时候想跟其他使用者线上文字对话&#xff0c;但又不想把自己的联络资料&#xff08;例如 Facebook 或即时通讯帐号&#xff09;泄漏给对方&#xff0c;有些人可能会选择申请一个临时使用的帐号&#xff0c;但这未免也太…

CCAI2018 | 韩家炜:大规模文本数据挖掘的新方向

来源&#xff1a;中国人工智能学会现实中的大数据常常表示为一种非结构化&#xff0c;交叉和动态变化的文本数据。如何从大规模文本数据中抽取结构化知识是一个非常值得研究的任务。很多研究工作依赖于劳动密集型的数据标注&#xff0c;用有监督的方法去抽取知识。但是&#xf…

关于面试宝典中的各个问题(一)

1、关于浮点数1.0f在内存中的表示&#xff1a;是3f800000. 各个类型所占的字节数&#xff08;byte&#xff09;&#xff0c;1byte8bit char 1 short 2 bool 1 int 4 long 4 float 4 double 8 long double 8 char * 4 int * 4 float * 4 以上是对于我的电脑&#xff0c;在典型…

安卓手机 Python 自动化( uiautomation、uiautomation2、weditor )

其他自动化工具或者框架&#xff1a; Airtest&#xff1a;https://airtest.readthedocs.io/zh_CN/latest/autojs&#xff1a;Auto.js快速入门实战教程&#xff1a;https://zhuanlan.zhihu.com/p/90065914appium&#xff1a;https://blog.csdn.net/freeking101/article/details…

强势~否定决断法

否定决断法套路 对方&#xff1a;“你在......上做得不是很好”&#xff08;批评&#xff09;你&#xff1a;“你说得对。我在处理那个的时候不太机灵&#xff0c;对吗”&#xff08;否定决断法&#xff09; 示例一&#xff1a; 同事&#xff1a;“上周答应给的那份参考文档…

C++/C宏定义中## 连接符与# 符的含义

http://blog.163.com/wshyao126/blog/static/1070451420081018103237836/ ## 连接符与# 符 ## 连接符号由两个井号组成&#xff0c;其功能是在带参数的宏定义中将两个子串(token)联接起来&#xff0c;从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(t…

揭秘|多伦多大学反人脸识别,身份欺骗成功率达99.5%

来源 &#xff1a;机器人大讲堂摘要&#xff1a;在一些社交媒体平台&#xff0c;每次你上传照片或视频时&#xff0c;它的人脸识别系统会试图从这些照片和视频中得到更多信息。比如&#xff0c;这些算法会提取关于你是谁、你的位置以及你认识的其他人的数据&#xff0c;并且&am…

安卓逆向_8 --- Android 调试工具 DDMS 和 Monitor ( 去掉 车来了 app 的广告 )

From&#xff1a;https://www.e-learn.cn/topic/3527658 Android SDK 中的 ddms 使用详解&#xff1a;https://blog.csdn.net/x83853684/article/details/80643131 ADB、Android Monitor、DDMS、HierarchyViewer、MAT、SysTrace、TraceView 性能分析工具使用大全&#xff1a;…

杂谈 | 微软复兴,它与苹果竟有这么多相似之处!

来源&#xff1a;网易智能摘要&#xff1a;且不要谈CEO们是否会让他们公司的“重生”&#xff0c;仅仅是成为一个成功帝国的好管家就已经是一项了不起的成就了。上周&#xff0c;微软市值超过了谷歌母公司Alphabet&#xff0c;成为继苹果&#xff08;Apple&#xff09;和亚马逊…

全能终端神器 --- MobaXterm 、开启 linux 远程桌面

From&#xff1a;https://cloud.tencent.com/developer/news/244102 官网地址&#xff1a;https://mobaxterm.mobatek.net MobaXterm 20.2_Professional.7z 下载地址&#xff1a;https://download.csdn.net/download/freeking101/12363312 MobaXterm 又名 MobaXVT&#xff0c…

强势~帮不了别人,也不用内疚

妻子的控诉 妻子&#xff1a;“你要是再让我生气&#xff0c;咱们就离婚。” 这种想法会让对方产生负疚感&#xff0c;因为言下之意是&#xff0c;婚约和两人之间的关系&#xff0c;要比夫妻双方的个人意愿和幸福更重要。 丈夫&#xff1a;“要是你确实觉得受不了&#xff0c…

【转】盛大创新院许式伟:影响我一生的五个重要选择

盛大创新院许式伟&#xff1a;影响我一生的五个重要选择 资料来源&#xff1a;http://www.programmer.com.cn/4206/ 作者&#xff1a; wuzhimin分类&#xff1a;坊间人语阅读&#xff1a;40,227 次添加评论文 / 许式伟 每个人的际遇是不同的&#xff0c;面临选择时&#xff0c;…

安卓逆向_7 --- 六种快速定位关键 Smali 代码的方法 ( 去掉 RE 广告 )

哔哩哔哩&#xff1a;https://www.bilibili.com/video/BV1UE411A7rW?p34 具体用法&#xff0c;看视频教程&#xff08; 去掉 RE 的 结束广告 &#xff09; 6 种定位关键代码的方法&#xff0c;当然还有其他方法&#xff0c;以后遇见了补充上&#xff1a; 1. 信息反馈法&#…

教机器遗忘或许比学习更重要:让AI健忘的三种方式

大数据文摘出品编译&#xff1a;臻臻、Shan LIU、龙牧雪大部分人不会喜欢遗忘的感觉。回到家顺手把钥匙丢在一个角落就再也想不起来放在哪儿了&#xff0c;街角偶遇一个同事却怎么拍脑袋也叫不出他的名字……我们害怕遗忘&#xff0c;讨厌遗忘。然而&#xff0c;生而为人&#…

代码精进之路~自明的代码

中间变量 Matcher matcher headerPattern.matcher(line); if (matcher.find()) {headers.put(matcher.group(1), matcher.group(2)); } 优化后 Matcher matcher headerPattern.matcher(line); if (matcher.find()) {String key matcher.group(1);String value matcher.g…

OpenCV图像或视频显示在VC对话框中的方法

转自&#xff1a;我思故我在 在MFC界面上添加一个picture控件&#xff0c;假设其ID为IDC_STATIC_PIC&#xff0c;类型设置为"增强图元文件" 首先包含OPENCV里的头文件&#xff1a; #include <cv.h> #include <stdio.h> #include <highgui.h> 在相应…

一套价值十万的微信公众号采集解决方案

From&#xff1a;http://www.blog2019.net/post/138 原文地址 相关阅读&#xff1a; 一套价值十万的微信公众号采集解决方案(免费送) 数据采集采集架构中各模块详细分析 基于大数据平台的互联网数据采集平台基本架构 教你一种1分钟下载1万个网页的方法&#xff0c;你学吗&a…

2018 年全球人工智能与机器人峰会将在深圳举办

来源&#xff1a;雷锋网摘要&#xff1a;第三届 CCF-GAIR —— 2018 年全球人工智能与机器人峰会&#xff0c;深圳&#xff0c;2018 年 6 月 29 日至 7 月 1 日。2018 年&#xff0c;AI 学术界与工业界的核心议题已演变为“基础理论技术创新”和“行业解决方案落地”&#xff0…

ASP.NET使用数据库存储、读取并修改图片

在SQL SERVER中建立这样结构的一个表&#xff1a;列名类型目的IDInteger主键IDIMGTITLEVarchar(50)图片的标题IMGTYPEVarchar(50)图片类型. ASP.NET要以辨认的类型IMGDATAImage用于存储二进制数据 using System;using System.Collections;using System.Configuration;using…