unordered_map<int,int> 如何处理负面元素?

Posted

技术标签:

【中文标题】unordered_map<int,int> 如何处理负面元素?【英文标题】:How unordered_map<int,int> handles negative elements? 【发布时间】:2019-10-09 05:04:31 【问题描述】:

我可以将负元素指定为 map 中的键,例如 map[-1]=10; 它如何在后面处理它,它使用什么数据结构?我知道 unordered_map 在内部使用散列,它如何处理散列的负元素?如果我使用数组进行散列,我不能散列负元素,因为数组索引不能为负

【问题讨论】:

这很简单:static_cast&lt;unsigned int&gt; unordered_map 如何处理负面元素? 简而言之:就像正面元素一样。 【参考方案1】:

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

在内部,元素不是按任何特定顺序排序的,而是 组织成桶。将元素放入哪个桶取决于 完全基于其密钥的散列。这允许快速访问个人 元素,因为一旦计算了散列,它指的是确切的 将元素放入的桶中。

unordered_map 使用散列来访问元素。只要定义了散列函数,散列负整数或任何其他类型都没有问题。

【讨论】:

以上是关于unordered_map<int,int> 如何处理负面元素?的主要内容,如果未能解决你的问题,请参考以下文章

unordered_map<int,int> 如何处理负面元素?

c ++:无法将一对<int,MLine *>插入到unordered_map

Javascript中C++ std::unordered_map<char, int> 的等价物是啥?

map (vs) unordered_map 以对为键

两个 std::unordered_map 的交集

为啥我不能增加 std::unordered_map 迭代器?