【发布时间】:2023-01-12 17:22:52
【问题描述】:
检查 std::map<int, int> 中是否存在值的最快方法是什么?我应该使用unordered map吗?在此任务中,我不能使用任何库来代替 std。
现在,如果不检查所有值,我不知道有什么方法可以做到这一点。
【问题讨论】:
-
std::map通常实现为平衡树。搜索以对数时间完成(最坏情况)。std::unordered_map通常实现为哈希表。搜索是 O(1),但只是平均。最坏的情况将是线性的。所以各有优缺点。 -
您甚至阅读过文档吗?
-
documentation 里有你想要的一切。您可以使用
std::map::find(),或者如果您启用了 C++20,则可以使用std::map::contains()。 -
.find() 方法按键搜索,不是吗?
标签: c++ algorithm performance dictionary unordered-map