2013-02-10 32 views
1

如果我想插入相同的字符在字符串的次數是在用戶輸入 例如:插入到串C++

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

是有使相同的過程中更有效的方式更短的時間?因爲如果n是一個很大的數字,你會採取程序相當長的時間來運行

回答

4

據:http://www.cplusplus.com/reference/string/string/append/ 情況下,N°5:灌裝字符串

str.append (14, 'd'); 

將追加14倍字符「d」中您的字符串

+0

我正要寫同樣的東西。榮譽:) – 2013-02-10 10:26:27

+0

儘管這仍然是線性的。 – Rapptz 2013-02-10 10:26:44

+0

太好了謝謝:) – 2013-02-10 10:30:44

2

不知道它的速度更快,但它的肯定更好的風格:

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

答案是更可能沒有,還沒有一個更EFF方便的方式。大多數操作實際上在數量上是線性的。包括構建替代字符串,使用std::string::append甚至std::fill附加到該字符串。一個好的方法或許可以加快速度,但通過使用s.push_back('M')以及可能的保留呼叫,但即使如此,它也不會明顯更快。