std::unordered_map中的每个键都有一个hash-value。如何获得这些hash-value?干什么?为了评估哈希函数与数据集的相关性,我可以从外部生成哈希函数,但我可能无法访问所使用的哈希函数。
std::unordered_map
yyhrrdl81#
可以访问所使用的哈希函数:
#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; }
字符串Demo
可以通过向Hash的构造函数传递不同的Hash类来为std::unordered_map提供自定义哈希函数。
Hash
1条答案
按热度按时间yyhrrdl81#
可以访问所使用的哈希函数:
字符串
Demo
可以通过向
Hash
的构造函数传递不同的Hash
类来为std::unordered_map
提供自定义哈希函数。