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

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

【问题讨论】:

  • 这很简单:static_cast&lt;unsigned int&gt;
  • unordered_map 如何处理负面元素? 简而言之:就像正面元素一样。

标签: c++ c++11 stl


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2012-06-20
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 2014-09-01
    • 2021-11-18
    • 1970-01-01
    相关资源
    最近更新 更多