提问人:Igor Polk 提问时间:10/5/2023 最后编辑:AmitIgor Polk 更新时间:11/15/2023 访问量:67
在 std::unordered_map 中,如何迭代哈希值?
In std::unordered_map, how to iterate over hashes?
问:
每个键都有哈希值。获取这些哈希值的方法是什么?std::unordered_map
为什么?评估哈希函数与数据集的相关性。我可以从外部生成哈希值,但我可能无法访问所使用的哈希函数。
答:
0赞
Amit
11/11/2023
#1
“我可能无法访问所使用的哈希函数。”
可以访问使用的哈希函数:
#include <unordered_map>
#include <iostream>
int main()
{
const std::unordered_map<int, int> my_map = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
const auto hasher{ my_map.hash_function() };
for (const auto& [key, value] : my_map) { // Structured bindings were introduced in C++17
const auto hash_value = hasher(key);
std::cout << "(h: " << hash_value << ", k: " << key << ", v: " << value << ") ";
}
std::cout << std::endl;
}
“评估哈希函数与数据集的相关性。”
可以通过将不同的类传递给其构造函数来提供自定义哈希函数。std::unordered_map
Hash
评论