欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

C++Primer学习笔记

时间:2023-04-22

这篇文章的内容是关联容器。这章的主要内容还是在告诉我们怎么使用关联容器。

顺序容器靠位置索引,关联容器靠关键字索引。

总结一下,主要有三种分类方式:map类型和set类型、关键字是否可重复出现、是否有序存储。

一、使用关联容器 1.map的简单使用 2.set的简单使用

 

二、关联容器概述

上面的内容先定性介绍了一下关联容器跟顺序容器的使用区别。

1.定义关联容器

1)初始化map或set

2)初始化multimap或multiset

 2.关键字类型的要求

1)有序容器的关键字类型

 一个新的词:严格弱序。不过讲了那么多直接看最后的note就好了。

2)使用关键字类型的比较函数

即如果要使用自己的类对象往set里面丢,这个时候我们需要定义比较函数,否则无法调用排序功能。 

 3.pair类型

没啥好讲的,知道了map的操作,理解pair小菜一碟。

1)创建pair对象的函数

 即使用make_pair函数创建。

 

 

三、关联容器操作

 这节的开胃小菜,介绍关联容器额外的类型别名比较值得注意的是map的value_type是pair类型的。

 1.关联容器的迭代器

 1)set的迭代器是const的

毕竟set的value_type是指向关键字的。

 2)遍历关联容器

举个例子:

set s{ 3,1,6,8 };for (auto num : s)cout << num << endl;//将输出1 3 6 8 //num是value_type类型的

 关联容器也是可以使用范围for语句遍历的。

 3)关联容器和算法

 2.添加元素

 1)向map添加元素

 在这主要是介绍用insert来完成插入操作。后面还会介绍其他的插入方式。

2)检查insert的返回值

 要知道insert的返回值代表的什么意思。

3)展开递增语句

 接下来是在接上面的内容,进一步解释insert的返回值的意义和使用

 4)向multiset或multimap添加元素

 multiset或multimap添加元素时不会去重。

3.删除元素  4.map的下标操作

 平时访问元素添加元素用的比较多的便是下标操作。

想要不自动创建的话要用at

 1)使用下标操作的返回值

5.访问元素 

 1)对map使用find代替下标操作

 2)在multimap或multiset中查找元素

接下来介绍的两种方法主要就为了解决multimap或multiset的访问问题。

 3)lower_bound与upper_bound

lower_bound与upper_bound是一种不同的,面向迭代器的解决方法

注: lower_bound与upper_bound对解决multimap或multiset的访问问题效果极佳

 

 4)equal_range函数

对解决multimap或multiset的访问问题效果也是极佳

 6.一个单词转换的map

接下来的内容主要是通过举一个例子对本节内容进行一个总结。这部分没啥难的地方,仔细阅读就能理解了。

1)题目与任务

 2)单词转换程序

 3)建立转换映射

 4)生成转换文本

四、无序容器 1.使用无序容器   2.管理桶

关于哈希桶可参考:

【数据结构】哈希桶_Cheng_913的博客-CSDN博客_数据结构 桶 

哈希桶的实现_xy的博客-CSDN博客_哈希桶 

 3.无序容器对关键字的要求

 主要在讲当无序容器的关键字是自定义类型时,该怎么处理。

 

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。