| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C++ primer 第十一章 关联容器 -> 正文阅读 |
|
[C++知识库]C++ primer 第十一章 关联容器 |
? ? ? ? 目录 ????????两个主要的关联容器为map和set,map中元素是一些关键字—值对,关键字起索引的作用,值则表示与索引相关联的数据。set中每个元素只包含一个关键字,set支持高效的关键字查询操作——检查一个给定关键字是否在set中。 ? ? ? ? 允许重复关键字的容器的名字开中都有包含单词multi,不保持关键字按顺序存储的容器的名字都以unordered开头。 11.1 使用关联容器(1)经典的map程序 ? ? ? ? 单词计数程序
(2)set的使用
11.2 关联容器概述11.2.1 定义关联容器? ? ? ?(1)mutiset使用的例子:
11.2.2 pair类型? ? ? ? 创建一个pair时,我们必须提供两个类型。 ? ? ? ? pair<string,int> p; ? ? ? ? 其中两个成员分别命名为first和second,可以采用成员访问符访问他们。 ???????? ? ? ? ? 创建pair对象的函数 ? ? ? ? 有一个函数需要返回一个pair,我们可以对返回值进行列表初始化
11.3 关联容器操作?11.3.1 关联容器迭代器
(1)set的迭代器是const的 ? ? ? ? set的迭代器只允许只读访问set中的元素,set中的关键字也是const的,可以用一个set迭代器来读取元素的值,但不能修改
11.3.2 添加元素? ? ? 关联容器的insert成员向容器中添加一个元素或一个元素范围,由于map和set包含不重复的关键字,因此插入一个存在的元素对容器无影响。
? insert有两个版本,分别接受一对迭代器,或是一个初始化器列表。 ? ? ?(1)向map添加元素 ? ? ? ? ? ? ? ? m.insert({word,1}) ? ? ? ? (2)insert的返回值 ? ? ? ? ? ? 对于不包含重复关键字的容器,添加单一元素的insert版本返回一个pair,pair的first成员是一个迭代器,指向具有给定关键字的元素,second成员是一个bool的值,指出元素是插入成功还是已经存在于容器中,如果关键字已在容器中,则insert什么也不做,且返回值中的bool部分为false,若关键字不存在,元素被插入到容器中,且bool值为true。 11.3.3 删除元素? ? ? ? 关联容器定义了三个版本的erase,可传递一个迭代器或一个迭代器对来删除一个元素或一个元素范围,指定元素被删除后返回void。?? ? ? ? ? 另一个版本没接收一个key_type参数,此版本删除所有匹配给定关键字的元素,返回实际删除的元素数量。 11.3.4 map的下标操作? ? ? ? map的下标运算符接受一个索引(即关键字),获取与此关键字相关联的值,若关键字不在map中,则会为其创建一个元素并插入到map中,关键值将进行值初始化。 11.3.5 访问元素? ? ? ? c.find(k):返回一个迭代器,指向第一个关键字为k的元素,若k不在容器中,则返回尾后迭代器 ? ? ? ? c.count(k):返回关键字等于k的元素数量,对于不允许重复关键字的容器,返回值永远是0或1 ? ? ? ? 关键容器还提供两个特殊的函数,lower_bound和upper_bound,lower_bound返回的迭代器将指向第一个具有给定关键字的元素,而upper_bound返回的迭代器指向最后一个匹配给定关键的元素之后的位置。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 16:27:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |