问题描述
我正在寻找最好的方法来将带有转换的容器作为字符串加入。我正在使用的旧样式如下:
std::string MyJoin(const std::vector<Foo>& foos) {
std::string str;
for (size_t i = 0; i < foos.size(); ++i) {
if (i != 0) {
str += ",";
}
str += Stringify(foos[i]);
}
return str;
}
这很好用,而且性能还可以,但是我想知道是否有同样性能的标准方法。我尝试了Range-V3:
std::string MyJoin(const std::vector<Foo>& foos) {
return foos | transform(Stringify) | cache1 | join(',') | to<std::string>;
}
这是一个漂亮的单眼线笔,易于阅读,但与旧笔眼相比性能差一半。我用一百万个foos进行了测试。
我做错什么了吗?还是旧的路要走?我想知道是否有一个很棒的解决方案,而我在其他答案中找不到。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)