遇到一个问题是需要遍历 std::vectorstd::string,string 内容可能重复,需要过滤,对每一个 string 执行一个处理逻辑,伪代码:
std::vector<std::string> vec;
for(auto str:vec)
{
if(xxxx.find(str) == xxxx.end())
{
//first match,handle
handle();
xxxx.insert(str);
} else {
//noting to do
}
}
我写了两个方案,晚上学习了 benchmark 写法,写了对比下,居然是先转成整数速度快一些? https://quick-bench.com/q/MJ4zzU3S5LIhGHd8qlgwBNRAOEc String_dup_set 和 String_dup_atoi ,第一个写法可能再向 set 中插入的时候触发了构造? 请教大家,有没有更优雅,更快速的方法,最好 c++14 支持(当前项目代码不支持 17 20 )