为什么运算符==对于std :: unordered_map而言还不够?-C ++

耶罗恩

为什么我需要同时实现==运算符和返回size_t的随机运算符?返回size_t的方法应该实际返回什么?

编辑:当我说随机运算符时,我并不是说它没有用。我的意思是,在我看来,我看不到它有什么用,因此是最后一个问题。7

马特·彼得森(Mats Petersson)

哈希容器(哈希表,哈希图,无序映射)使用哈希函数生成单个整数值来表示条目的索引(或键)。这使您可以非常快速地进行查找,因为(假设我们具有良好的散列值分布)一旦有了散列,我们只需要查看该索引即可。大多数其他存储方法意味着比较一堆东西,直到找到正确的元素。

关于哈希键,实际上只有两个规则:1.每次调用哈希函数时,对于给定的输入,您都会获得相同的键。2.对于不同的输入,值是不同的-不必唯一,但是从相似的输入中获得的价差越大,效果越好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对于负整数,为什么C和Ruby之间的模运算符(%)的行为不同?

来自分类Dev

对于负整数,为什么C和Ruby之间的模运算符(%)的行为不同?

来自分类Dev

为UDF std :: unordered_map提供“:”运算符?

来自分类Dev

C ++-unordered_map运算符[],意外行为

来自分类Dev

为什么std :: map重载运算符<不使用Compare

来自分类Dev

什么是C ++ std :: unordered_map默认容器?

来自分类Dev

C ++ | 重载运算符<< | std :: map

来自分类Dev

C ++ std :: map :: iterator什么也没找到,但是下标运算符返回对映射值的引用?

来自分类Dev

具有自定义值类型的std :: unordered_map,运算符[]

来自分类Dev

在C ++中如何在const unordered_map上使用“ []”运算符来解决?

来自分类Dev

为什么没有为数据类型定义运算符<时,为什么std :: map代码会编译?

来自分类Dev

为什么“ as”运算符在C#中不使用隐式转换运算符?

来自分类Dev

为什么C ++没有〜=和!=运算符?

来自分类Dev

为什么map.find使用<运算符而不是==运算符?

来自分类Dev

C ++ std :: function运算符=

来自分类Dev

在C ++ 20中,为什么有std :: vector运算符==不适用于具有不同分配器的向量?

来自分类Dev

为什么Map的+运算符需要双括号?

来自分类Dev

为什么Map的+运算符需要双括号?

来自分类Dev

C ++ std :: unordered_map中使用的默认哈希函数是什么?

来自分类Dev

填充std :: map时,“ C2593:运算符=不明确”

来自分类Dev

为什么在std :: unordered_map :: count上没有`noexcept`说明符?

来自分类Dev

为什么C ++ STL容器使用“小于”运算符<而不是“等于”运算符==作为比较器?

来自分类Dev

C ++移动语义:为什么调用复制分配运算符=(&)而不是移动分配运算符=(&&)?

来自分类Dev

C ++移动语义:为什么调用复制分配运算符=(&)而不是移动分配运算符=(&&)?

来自分类Dev

什么是C / C ++中的“->”运算符?

来自分类Dev

什么是C / C ++中的“->”运算符?

来自分类Dev

为什么运算符<对于Java泛型有编译器错误?

来自分类Dev

为什么 !set -e运算符即使对于真实的返回值也总是成功吗?

来自分类Dev

为什么三元(?:)运算符中的std :: istringstream解析为与std :: ifstream不同?

Related 相关文章

  1. 1

    对于负整数,为什么C和Ruby之间的模运算符(%)的行为不同?

  2. 2

    对于负整数,为什么C和Ruby之间的模运算符(%)的行为不同?

  3. 3

    为UDF std :: unordered_map提供“:”运算符?

  4. 4

    C ++-unordered_map运算符[],意外行为

  5. 5

    为什么std :: map重载运算符<不使用Compare

  6. 6

    什么是C ++ std :: unordered_map默认容器?

  7. 7

    C ++ | 重载运算符<< | std :: map

  8. 8

    C ++ std :: map :: iterator什么也没找到,但是下标运算符返回对映射值的引用?

  9. 9

    具有自定义值类型的std :: unordered_map,运算符[]

  10. 10

    在C ++中如何在const unordered_map上使用“ []”运算符来解决?

  11. 11

    为什么没有为数据类型定义运算符<时,为什么std :: map代码会编译?

  12. 12

    为什么“ as”运算符在C#中不使用隐式转换运算符?

  13. 13

    为什么C ++没有〜=和!=运算符?

  14. 14

    为什么map.find使用<运算符而不是==运算符?

  15. 15

    C ++ std :: function运算符=

  16. 16

    在C ++ 20中,为什么有std :: vector运算符==不适用于具有不同分配器的向量?

  17. 17

    为什么Map的+运算符需要双括号?

  18. 18

    为什么Map的+运算符需要双括号?

  19. 19

    C ++ std :: unordered_map中使用的默认哈希函数是什么?

  20. 20

    填充std :: map时,“ C2593:运算符=不明确”

  21. 21

    为什么在std :: unordered_map :: count上没有`noexcept`说明符?

  22. 22

    为什么C ++ STL容器使用“小于”运算符<而不是“等于”运算符==作为比较器?

  23. 23

    C ++移动语义:为什么调用复制分配运算符=(&)而不是移动分配运算符=(&&)?

  24. 24

    C ++移动语义:为什么调用复制分配运算符=(&)而不是移动分配运算符=(&&)?

  25. 25

    什么是C / C ++中的“->”运算符?

  26. 26

    什么是C / C ++中的“->”运算符?

  27. 27

    为什么运算符<对于Java泛型有编译器错误?

  28. 28

    为什么 !set -e运算符即使对于真实的返回值也总是成功吗?

  29. 29

    为什么三元(?:)运算符中的std :: istringstream解析为与std :: ifstream不同?

热门标签

归档