插入字符串c ++

时间:2013-02-10 10:23:29

标签: c++ string insert stdstring

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

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

有更有效的方法可以在更短的时间内完成相同的流程吗?因为如果n是一个很大的数字,它将花费很长时间来运行

3 个答案:

答案 0 :(得分:4)

根据:http://www.cplusplus.com/reference/string/string/append/ 案例5:填充字符串

str.append (14, 'd');

将字符串'd'追加14倍于你的字符串

答案 1 :(得分:2)

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

s += std::string('M', n);

答案 2 :(得分:0)

答案更可能是没有,没有更有效的方法。大多数操作实际上都是线性的。包括构建替代字符串,使用std::string::append甚至std::fill附加到其中。可能获得加速的好方法是使用s.push_back('M')并可能进行预约呼叫,但即使这样,它也不会明显加快,如果有的话。