【问题标题】:memory optimization с++ [duplicate]内存优化с++ [重复]
【发布时间】:2021-11-07 08:04:12
【问题描述】:

如何有效地合并两个字符串?我只知道用“+” - str3 = str1 + str2 的标准串联,但这种方式不节省内存,因为每次都会创建一个新字符串。

【问题讨论】:

  • 最快的方法可能是使用 += iirc += 调整字符串大小并在第一个末尾复制第二个。 str1 += str2

标签: c++ string optimization memory concatenation


【解决方案1】:

std::basic_stringstream

但如果你只需要合并2个字符串,只需append它们即可。

【讨论】:

  • @KPCT 它们当然是不同的东西(函数和运算符),但可以通过使用另一个来实现。
  • 大声笑我知道它们的区别,但在内部它们不一样。 +=
  • 这是 GCC 的观点:basic_string& operator+=(const basic_string& __str) { return this->append(__str); }
  • 打败了我。我会毫不犹豫地投反对票,但我认为您的回答没有任何问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 2010-11-15
  • 2017-01-18
相关资源
最近更新 更多