STL 无序容器的局部迭代器有哪些用途?

What are some uses of local iterator for STL unordered containers?

在 C++ 标准的 §23.2.7 无序关联容器 [unord.req]table 91描述了 STL 无序关联容器必须满足的额外要求。在此 table 中,标准规定 STL 无序容器(即 unordered_set, unordered_map, unordered_multiset and unordered_multimap)必须作为成员类型提供 local_iteratorconst_local_iterator.

Q

这些迭代器有哪些用途?

我看到它的主要用途是检查碰撞次数。使用 bucket you can get what bucket a key is stored in. You can then pass that bucket value to begin 将 return 一个 local_iterator 到该存储桶中的项目。现在您可以迭代该桶并查看是否与任何其他元素发生碰撞,如果发生碰撞,这些元素是什么。反过来,这允许您调整哈希函数。