插入字符串c++

Inserting into a string c++

本文关键字:c++ 字符串 插入      更新时间:2023-10-16

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

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'),并可能进行保留呼叫,但即使这样,速度也不会明显加快。