std::unordered_map 搜索算法是如何实现的?
How a std::unordered_map search algorithm is implemented?
我知道,如果需要在有序集中实现搜索,那么我们使用适当类型的"<"运算符比较二叉树的每个"单元格"的数据,这是有序集的结构,但我不明白在 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++标准库的源代码,因为它取决于您的库。
相关文章:
- 如果没有malloc,链表实现将失败
- 如何在c++中实现处理器调度模拟器
- 如何在c++中使用引用实现类似python的行为
- 实现无开销push_back的最佳方法是什么
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 实现一个在集合上迭代的模板函数
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 如何正确实现和访问运算符的各种自定义枚举器
- C++Union/Struct位域的实现和可移植性
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 在c++中实现LinkedList时,应出现未处理的错误
- 为左值和右值的包装器实现C++范围
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- 使用GSoap实现ONVIF
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 用于AVX的ln(x)的实现,m256
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 如何实现内部实现依赖于模板参数的类
- 我的 PRNG 实现与我尝试复制的实现有何不同?