不区分大小写unordered_map<字符串,整数>

case insensitive unordered_map<string, int>

本文关键字:字符串 整数 gt lt unordered map 不区 大小写      更新时间:2023-10-16

如何创建不区分大小写的unordered_map<string, int>
覆盖key_equal是否足够,或者我还需要更新hasher

Hasher也需要更新,因为默认的哈希算法不会为仅在符号大小方面不同的字符串生成相同的哈希代码——这是哈希代码函数的一个重要属性,用于处理不区分大小写的字符串。

std::string s1 = "Hello";
std::string s2 = "hello";
std::hash<std::string> hash_fn;
size_t hash1 = hash_fn(s1);
size_t hash2 = hash_fn(s2);
std::cout << hash1 << 'n';
std::cout << hash2 << 'n';

这在ideone上显示了不同的值:

101669370
3305111549