【问题标题】:What are some uses of local iterator for STL unordered containers?STL 无序容器的本地迭代器有哪些用途?
【发布时间】:2017-02-14 12:54:15
【问题描述】:

在 C++ 标准表 91§23.2.7 无序关联容器 [unord.req] 中描述了 STL 无序关联容器必须满足的附加要求。在此表中,标准规定 STL 无序容器(即 unordered_setunordered_mapunordered_multisetunordered_multimap)必须提供成员类型 local_iteratorconst_local_iterator

  • local_iterator 是一个迭代器类型,它的类别、值、差异、指针和 引用类型与无序容器的iterator 相同。此迭代器可用于遍历单个存储桶,但不能跨存储桶。
  • const_local_iterator 是一个迭代器类型,其类别、值、差异、指针和引用类型与无序容器的const_iterator 相同。此迭代器可用于遍历单个存储桶,但不能跨存储桶。

这些迭代器有什么用途?

【问题讨论】:

    标签: c++ unordered-map unordered-set unordered-multimap unordered-multiset


    【解决方案1】:

    我可以看到它的主要用途是检查您有多少碰撞。使用bucket,您可以获得密钥存储在哪个桶中。然后,您可以将该桶值传递给begin,这将向该桶中的项目返回local_iterator。现在您可以迭代该存储桶并查看是否与任何其他元素发生碰撞,如果发生碰撞,这些元素是什么。这反过来又允许您调整散列函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 2010-10-17
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多