如何在C++中创建自定义类的unordered_map
unordered_map用于实现哈希表。它存储键值对。对于每个键,都会计算一个哈希函数,并在该哈希条目中存储值。标准数据类型(int,char,string等)的哈希函数是预定义的。如何使用自己的数据类型来实现哈希表?
unordered_map允许使用第三个参数来指定我们自己的哈希函数。
这里的MyHashFunction是一个必须包含 操作符函数 () 的类或结构体。
我们还必须在我们自己的类中实现 操作符 == ,以处理冲突。
下面是一个示例代码,其中Person类的对象用作键。我们定义自己的哈希函数,它将姓和名字的长度总和用作哈希表中的键。请注意,此代码的目的仅是演示使用简单代码的工作方式,长度总和可能不是哈希函数的好主意。
输出:
另一个示例,其中使用预定义哈希类的预定义操作符函数来创建我们的总哈希表。
输出: