摘要: 虽然每种无序容器都指定了默认的 hash<key> 哈希函数和 equal_to<key> 比较规则,但它们仅适用于存储基本类型(比如 int、double、float、string 等)数据的无序容器。换句话说,如果无序容器存储的数据类型为自定义的结构体或类,则 STL 标准库提供的 hash<k 阅读全文
posted @ 2021-09-03 21:18 默行于世 阅读(833) 评论(0) 推荐(1) 编辑
摘要: unordered_multiset 容器大部分的特性都和 unordered_set 容器相同,包括: unordered_multiset 不以键值对的形式存储数据,而是直接存储数据的值; 该类型容器底层采用的也是哈希表存储结构,它不会对内部存储的数据进行排序; unordered_multis 阅读全文
posted @ 2021-09-03 21:11 默行于世 阅读(94) 评论(0) 推荐(0) 编辑
摘要: unordered_set 容器,可直译为“无序 set 容器”,即 unordered_set 容器和 set 容器很像,唯一的区别就在于 set 容器会自行对存储的数据进行排序,而 unordered_set 容器不会。总的来说,unordered_set 容器具有以下几个特性: 不再以键值对的 阅读全文
posted @ 2021-09-03 20:59 默行于世 阅读(232) 评论(0) 推荐(0) 编辑
摘要: C++ STL 标准库中,除了提供有 unordered_map 无序关联容器,还提供有和 unordered_map 容器非常相似的 unordered_multimap 无序关联容器。和 unordered_map 容器一样,unordered_multimap 容器也以键值对的形式存储数据,且 阅读全文
posted @ 2021-09-03 20:49 默行于世 阅读(735) 评论(0) 推荐(0) 编辑
摘要: unordered_map 容器,直译过来就是"无序 map 容器"的意思。所谓“无序”,指的是 unordered_map 容器不会像 map 容器那样对存储的数据进行排序。换句话说,unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unord 阅读全文
posted @ 2021-09-03 20:38 默行于世 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 自定义容器排序规则 1) 使用函数对象自定义排序规则 不知道函数对象是什么请浏览C++ 函数对象(仿函数) 无论关联式容器中存储的是基础类型(如 int、double、float 等)数据,还是自定义的结构体变量或类对象(包括 string 类),都可以使用函数对象的方式为该容器自定义排序规则。下面 阅读全文
posted @ 2021-09-03 20:17 默行于世 阅读(577) 评论(0) 推荐(0) 编辑
摘要: 如果一个类将()运算符重载为成员函数,这个类就称为函数对象类,这个类的对象就是函数对象。函数对象是一个对象,但是使用的形式看起来像函数调用,实际上也执行了函数调用,因而得名。下面是一个函数对象的例子。 #include <iostream> using namespace std; class CA 阅读全文
posted @ 2021-09-03 20:03 默行于世 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 和 map、multimap 容器不同,使用 set 容器存储的各个键值对,要求键 key 和值 value 必须相等。 基于 set 容器的这种特性,当使用 set 容器存储键值对时,只需要为其提供各键值对中的 value 值(也就是 key 的值)即可。map、multimap 容器都会自行根据 阅读全文
posted @ 2021-09-03 19:46 默行于世 阅读(183) 评论(0) 推荐(0) 编辑
摘要: multimap multimap 容器具有和 map 相同的特性,即 multimap 容器也用于存储 pair<const K, T> 类型的键值对(其中 K 表示键的类型,T 表示值的类型),其中各个键值对的键的值不能做修改;并且,该容器也会自行根据键的大小对存储的所有键值对做排序操作。和 m 阅读全文
posted @ 2021-09-03 19:23 默行于世 阅读(66) 评论(0) 推荐(0) 编辑