std::unordered_map 搜索算法是如何实现的?

How a std::unordered_map search algorithm is implemented?

本文关键字:实现 何实现 unordered map 搜索算法 std      更新时间:2023-10-16

我知道,如果需要在有序集中实现搜索,那么我们使用适当类型的"<"运算符比较二叉树的每个"单元格"的数据,这是有序集的结构,但我不明白在 std 的情况下一切是如何工作的::unordered_map。
我在哪里可以找到任何关于一切如何安排和/或直接查看代码的文章?

在内部,元素不按任何特定顺序排序,但 组织到存储桶中。元素放入哪个存储桶取决于 完全基于其密钥的哈希值。

您可以使用如下代码在std::unordered_map中搜索密钥:(此处key变量等于您正在搜索的密钥(:

if (your_map.find(key) != your_map.end()) {
...
}

如果要搜索值,可以使用如下所示for循环:

for (const auto& pair : your_map) {
if (pair.second == the_value_you_are_finding) {
...
break;
}
}

但是,如果您想知道您的程序如何搜索无序列图或上面使用的函数是如何实现的,那么您必须查看C++标准库的源代码,因为它取决于您的库。