以标准方式通过转换连接字符串的最佳方法

问题描述

我正在寻找最好的方法来将带有转换的容器作为字符串加入。我正在使用的旧样式如下:

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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...