gpt4 book ai didi

c++ - 我如何更有效地插入 std::map

转载 作者:行者123 更新时间:2023-11-28 05:36:56 25 4
gpt4 key购买 nike

<分区>

我有类似的代码:

struct Record{
std::string key;
// ...
};

void push_record(Record &out, std::map<std::string, int> &vmap){
const auto &it = vmap.find(out.key);

long pos;

if (it != vmap.end()){
pos = it->second;
}else{
pos = calculate_pos(out);
vmap.insert( Record(std::move(out.key), pos) ); // here move
}

// use pos
}

如何使代码更高效?

目前,代码效率不是很高,因为它查找 map 两次。首先是检查值,然后是插入时。

我也想用std::move(out.key) ,这就是为什么我没有使用类似 vmap[out.key] 的原因.

我看到你可以将建议传递给insert , 但我找不到很好的例子。

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