插入字符串c++
Inserting into a string c++
如果我想在字符串中多次插入用户输入的相同字符例如:
int n=30;
string s="";
for(int i=0; i<n; i++) {
s=s+"M";
}
有没有一种更有效的方法可以在更短的时间内完成同样的过程?因为如果n是一个大数字,那么程序运行需要很长时间
根据:http://www.cplusplus.com/reference/string/string/append/案例5:填充字符串
str.append (14, 'd');
将在字符串中附加14倍的字符"d"
不确定它是否更快,但肯定是更好的风格:
s += std::string('M', n);
答案很可能是否定的,没有更有效的方法了。大多数运算实际上都是线性的。包括构造一个替代字符串,使用std::string::append
甚至std::fill
对其进行附加。不过,提高速度的一个好方法是使用s.push_back('M')
,并可能进行保留呼叫,但即使这样,速度也不会明显加快。