遇到一个问题是需要遍历 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 )
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.