gpt4 book ai didi

c++ - 有效地检查 map c++中是否存在元素

转载 作者:行者123 更新时间:2023-11-30 02:20:25 26 4
gpt4 key购买 nike

我知道 .find() 方法可以检查 map 中是否存在某个元素。但假设我有一张 map —— map ——包含大约 2000 个元素,我想向列表中添加一个元素。我首先必须检查该元素是否存在。使用 .find() 是不是有点低效,因为迭代器必须“迭代” map 中的元素?是否有更高效、更省时的方法来检查 map 中是否存在元素?

最佳答案

std::map 具有对数查找复杂度,因此您不必访问所有元素来确定某个元素是否在 map 中。

另一方面,您可以使用std::map::emplacestd::map::insert 使查找和插入操作更加简洁>:

auto [iter, ok] = the_map.emplace(the_key, a_value);
if (ok) {
// element was not in map so got inserted
}

这假设 a_value 已经存在,或者构造它不是问题,即使它最终没有被插入到 map 中也是如此。

关于c++ - 有效地检查 map c++中是否存在元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49680858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com