1

如果我想在用户输入的字符串中多次插入相同的字符例如:

int n=30;
string s="";
for(int i=0; i<n; i++) {
    s=s+"M";
}

有没有更有效的方法可以在更短的时间内完成相同的过程?因为如果 n 是一个很大的数字,程序将需要很长时间才能运行

4

3 回答 3

4

根据:http ://www.cplusplus.com/reference/string/string/append/ Case n°5:填充字符串

str.append (14, 'd');

将在您的字符串中附加 14 次字符“d”

于 2013-02-10T10:25:23.667 回答
2

不确定它是否更快,但肯定是更好的风格:

s += std::string('M', n);
于 2013-02-10T10:25:30.273 回答
0

答案很可能是不,没有更有效的方法来做到这一点。大多数操作实际上在计数上是线性的。包括构造一个替代字符串,使用std::string::append和附加到它std::fill。一个可能加快速度的好方法是通过使用s.push_back('M')并可能进行备用调用,但即使那样它也不会明显更快,如果有的话。

于 2013-02-10T10:32:33.587 回答