unordered_map <int,int>如何处理否定元素?

时间:2019-10-09 05:04:31

标签: c++ c++11 stl

我可以在地图中分配否定元素作为键,例如map[-1]=10;怎样处理它的背面,它使用什么数据结构?我知道unordered_map在内部使用哈希,它如何处理哈希的否定元素?如果我使用数组进行哈希处理,则无法对否定元素进行哈希处理,导致数组索引不能为负数

1 个答案:

答案 0 :(得分:6)

  

无序映射是一个包含键值的关联容器   与唯一键配对。搜索,插入和删除元素   具有平均恒定时间复杂度。

     

在内部,元素不是按任何特定顺序排序的,而是   整理成水桶。元素放入哪个存储桶取决于   完全在其密钥的哈希值上。这样可以快速访问个人   元素,因为一旦计算出哈希值,它就指向精确的   将元素放入其中。

unordered_map使用散列来访问元素。只要定义哈希函数,就可以对负整数或任何其他类型进行哈希处理。