检查 std::map 中是否存在值的最快方法是什么?

IsC*_*228 0 c++ algorithm performance dictionary unordered-map

检查值是否存在于中的最快方法是什么std::map<int, int>?我应该使用吗unordered map?在这个任务中,我不能使用任何库来代替 std。

现在,我不知道有什么方法可以在不检查所有值的情况下做到这一点。

rus*_*tyx 5

最快的方法就是不做。不要在映射中寻找,而是在映射中寻找

如果您需要搜索,请使用其他数据结构(或单独的映射)。

在映射中搜索的唯一方法是线性 (O(N)),但由于迭代映射数据结构时的缓存开销,它甚至会比迭代例如向量更慢。