问题:
在 C++ 中:给定 std::string s = "copyme" 我怎样才能制作一个字符串 b 这是 "copymecopymecopyme" 或任何广义的 s + s + ... n 次?
可能的解决方案
一个可能的解决方案是执行 for 循环的方法/宏,但这将非常低效。
执行此字符串复制操作的有效方法是什么,例如,正如前面的作者在 python 或 ruby 中以 'string'*n 的样式所说的那样。
一个相对有效的循环将分配 strlen*n 然后多次复制字符,而不是执行多次复制和分配的 for(...) {str+=copy_this_string;} 。
另一种解决方案是使用字符串缓冲区。
所以澄清
关键:不使用宏。澄清:问题中的“字符数组”是因为在原始问题中,由于字符串中有一个字符,所有答案都忽略了一般流的复制并专注于使用“。” 因为它具有易于访问的方法,例如流构造函数。
“重复”:如何在 C++ 中将字符串重复可变次数? 除了大多数答案之外,所有使用的方法都只重复了一个字符,例如 String Constructor 和 insert 方法,它们没有回答原始问题并且当我寻找一种有效的方法时没有帮助。