如果我想在用户输入的字符串中多次插入相同的字符例如:
int n=30;
string s="";
for(int i=0; i<n; i++) {
s=s+"M";
}
有没有更有效的方法可以在更短的时间内完成相同的过程?因为如果 n 是一个很大的数字,程序将需要很长时间才能运行
根据:http ://www.cplusplus.com/reference/string/string/append/ Case n°5:填充字符串
str.append (14, 'd');
将在您的字符串中附加 14 次字符“d”
不确定它是否更快,但肯定是更好的风格:
s += std::string('M', n);
答案很可能是不,没有更有效的方法来做到这一点。大多数操作实际上在计数上是线性的。包括构造一个替代字符串,使用std::string::append
和附加到它std::fill
。一个可能加快速度的好方法是通过使用s.push_back('M')
并可能进行备用调用,但即使那样它也不会明显更快,如果有的话。