📅  最后修改于: 2023-12-03 15:29:51.025000             🧑  作者: Mango
unordered_map
是C++ STL中的一个关联容器,它通过使用哈希表来实现快速查找。当我们向unordered_map
中插入元素时,需要指定一个哈希函数,它将用于为键生成一个索引。unordered_map
中的hash_function()
函数就是用于获取当前unordered_map
容器所使用的哈希函数的。
hasher hash_function() const;
无。
返回一个hasher
类型的哈希函数对象,它的作用是将键映射为一个索引值。
使用hash_function()
函数非常简单,只需要调用它即可获取当前unordered_map
容器所使用的哈希函数。示例代码如下:
#include <iostream>
#include <unordered_map>
int main()
{
std::unordered_map<std::string, int> dict = {
{"apple", 1},
{"banana", 2},
{"cat", 3}
};
std::unordered_map<std::string, int>::hasher hf = dict.hash_function();
std::cout << "The hash value of 'apple' is " << hf("apple") << std::endl;
std::cout << "The hash value of 'banana' is " << hf("banana") << std::endl;
std::cout << "The hash value of 'cat' is " << hf("cat") << std::endl;
return 0;
}
上述程序中,我们定义了一个unordered_map
容器dict
,存储了三个键值对。然后通过调用hash_function()
函数,获取了当前哈希函数hf
。最后,我们使用hf
来计算每个键的哈希值,并输出结果。
hash_function()
函数返回的哈希函数对象是一个常量,不允许修改。hash_function()
函数只返回当前unordered_map
容器所使用的哈希函数,如果需要更改哈希函数,需要使用unordered_map
的构造函数或rehash()
函数进行操作。