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

Aks*_*nde 1 c++ stl c++11

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

Obl*_*ica 6

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

在内部,这些元素不是按任何特定顺序排序的,而是按桶进行组织。元素放入哪个存储桶完全取决于其键的哈希值。这允许快速访问各个元素,因为一旦计算了哈希,它就指向元素所放置的确切存储桶。

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