我正在看这篇文章C++ unordered_map using a custom class type as the key
- 我了解我们需要为自定义类型键重新定义
相等
和哈希码
。 - 我知道运算符重载的一般工作原理。
但是,operator()
与哈希码
有什么关系?
unordered_map
是否在内部使用 ()
运算符在某处计算键?
最佳答案
std::unordered_map
使用std::hash
对象来计算哈希值。
它将像函数一样使用哈希对象,调用 operator()
进行计算。
作为一个简单的例子,对于 int
键,它将是这样的:
int key = 123; // Or whatever value...
std::hash<int> hash_object;
auto hash_value = hash_object(key); // Calls hash_object.operator()(key)
关于c++ - unordered_map 中用户定义类型的运算符重载(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74347125/