如果我想在字符串中插入相同的字符,则用户输入的次数 例如:
int n=30;
string s="";
for(int i=0; i<n; i++) {
s=s+"M";
}
有更有效的方法可以在更短的时间内完成相同的流程吗?因为如果n是一个很大的数字,它将花费很长时间来运行
答案 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')
并可能进行预约呼叫,但即使这样,它也不会明显加快,如果有的话。