gpt4 book ai didi

c++ - std::map 插入或 std::map 查找?

转载 作者:IT老高 更新时间:2023-10-28 12:00:34 27 4
gpt4 key购买 nike

假设您要在其中保留现有条目的 map 。 20% 的时间,您插入的条目是新数据。使用返回的迭代器执行 std::map::find 然后 std::map::insert 是否有优势?或者尝试插入然后根据迭代器是否指示记录已插入或未插入是否更快?

最佳答案

答案是你都不做。相反,您想做 Effective STL 的第 24 项建议的事情。由 Scott Meyers :

typedef map<int, int> MapType;    // Your map type may vary, just change the typedef

MapType mymap;
// Add elements to map here
int k = 4; // assume we're searching for keys equal to 4
int v = 0; // assume we want the value 0 associated with the key of 4

MapType::iterator lb = mymap.lower_bound(k);

if(lb != mymap.end() && !(mymap.key_comp()(k, lb->first)))
{
// key already exists
// update lb->second if you care to
}
else
{
// the key does not exist in the map
// add it to the map
mymap.insert(lb, MapType::value_type(k, v)); // Use lb as a hint to insert,
// so it can avoid another lookup
}

关于c++ - std::map 插入或 std::map 查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/97050/

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