gpt4 book ai didi

c++ - 无序映射相等功能 c++

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:45:41 26 4
gpt4 key购买 nike

可能这很容易,但我只想了解我们是否可以这样做:

假设我们有一个 unordered_map(string, string) 所以默认情况下它会检查两个字符串是否相等。

现在,假设我们在相等运算符中再添加一项功能,即使两个字符串彼此是变位词,也能返回 true。为此,我们能否只更新相等运算符而不更新哈希器(并使用默认哈希器)。

例如,只定义仿函数:

bool operator() (const string& a, const string& b) const  
{
// check for anagram condition here
}

最佳答案

相同的对象必须具有相同的哈希值,否则哈希表将在错误的桶中查找值。例如,字符串 ab 和 ba 可能最终位于不同的桶中,因此当您查找 ab 时,即使它们应该“相等”,也找不到 ba。

所以不,你不能使用默认的哈希函数。

关于c++ - 无序映射相等功能 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18681608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com