1

ユーザーが入力した文字列に同じ文字を何度も挿入したい場合は、たとえば次のようになります。

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

同じプロセスをより短時間で効率的に行う方法はありますか? n が大きい場合、プログラムの実行に非常に長い時間がかかるためです。

4

3 に答える 3

4

によると: http://www.cplusplus.com/reference/string/string/append/ Case n°5: 文字列を埋める

str.append (14, 'd');

文字列に文字「d」の14倍を追加します

于 2013-02-10T10:25:23.667 に答える
2

より高速かどうかはわかりませんが、スタイルが優れていることは確かです。

s += std::string('M', n);
于 2013-02-10T10:25:30.273 に答える
0

答えはノーである可能性が高く、より効率的な方法はありません。ほとんどの操作は、実際にはカウントが線形になります。代替文字列の作成、および を使用した追加std::string::appendも含まれstd::fillます。ただし、速度を上げる良い方法はs.push_back('M')、予約呼び出しを使用し、場合によってはそれを行うことですが、それでも、たとえあったとしても、著しく高速になることはありません。

于 2013-02-10T10:32:33.587 に答える