c ++ 14-これは文字列の先頭に文字を付ける良い方法ですか?

慣性無知

文字列sの先頭にcharcを追加したい場合、次の良い習慣はありますか?

string s = "oo";
char c = 'f';
s = c + s;

SOの質問「Prependstd :: string」では、これを行うことを提案した回答は、member-functionの使用を提案したトップの回答よりも評判が良くありません.insert()でした。

効率以外に理由はありますか(s = c + sすべての内容をstring sコピーする必要があるため効率的ではありません)?

ニコル・ボーラス

どちらも同じ操作を行うので、効率以外にどのような理由があるのでしょうか。c+sしたがって、両方のすべての文字のコピーが必要な、一時的な文字列を作成するcs、および潜在的にヒープ割り当てを。次に、一時オブジェクトは指定されたオブジェクトに移動され、現在のメモリの割り当てが解除されます(存在する場合)。これらは安価な操作ではありません。

これとは対照的に、insertなりますだけ新しい文字のための十分な容量がある場合は、ヒープの割り当てを行います。最初に挿入しているので、コピーは引き続き実行されます。しかし、それはそれについてです。隣接する配列の先頭に挿入するのと同じくらい効率的です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

C ++ 14-std :: reverses(ed)std :: stringの先頭にヌル文字が含まれていますか?

分類Dev

Cの文字列の先頭に文字を追加するにはどうすればよいですか?

分類Dev

C ++ 14の「constexpr」

分類Dev

C ++で.txtファイルの先頭に文字列を挿入するにはどうすればよいですか

分類Dev

Cでのこの逆文字列関数は適切に記述されていませんか?/このコードをより良くする方法は?

分類Dev

C ++プログラムの先頭に空白の#includeを付ける人がいるのはなぜですか?

分類Dev

C ++ 14で-nanを取得するにはどうすればよいですか?

分類Dev

この日付文字列をC#で解析するにはどうすればよいですか

分類Dev

C ++ 14でのこのC ++ 17フォールド式の良い代替手段は何ですか?

分類Dev

C ++ 14のLambda-Over-Lambda

分類Dev

C ++ 11:先頭の文字がアルファ(abcdef)の場合にstringstreamから16進文字列を解析する方法

分類Dev

最近の MinGW で qmake を C++14 に設定するにはどうすればよいですか?

分類Dev

cの先頭に空白がある最初の文字列を読み取る方法は?

分類Dev

C ++でテキストファイルの先頭から文字「」を削除するにはどうすればよいですか?

分類Dev

nanosleep()の関数はC ++ 14で削除されていますか?

分類Dev

C ++ 14は、引用符を含む引用符付き文字列を逐語的に抽出します

分類Dev

「なぜswitchステートメントを文字列に適用できないのですか?」に対する答えはありますか?C ++ 11/14でも本当ですか?

分類Dev

このC ++ 14再帰テンプレートをC ++ 17で短くする方法はありますか?

分類Dev

C ++ 14とC ++ 17の違い: `* p ++ = * p`

分類Dev

C#でスペースを挟んで文字列から先頭の0を削除する方法

分類Dev

文字列の先頭にスペースを追加するC ++ getline

分類Dev

g ++は標準14を認識しません(-std = c ++ 14)

分類Dev

Dev C ++ IDEでC ++ 11またはC ++ 14を有効にする方法

分類Dev

Dev C ++ IDEでC ++ 11またはC ++ 14を有効にする方法

分類Dev

C#の大文字から頭字語を作成するより良い方法はありますか?

分類Dev

C#の大文字から頭字語を作成するより良い方法はありますか?

分類Dev

Cでスクラブルのようなゲームを作成する。文字列に特定の文字が含まれているかどうかを確認し、その文字を配列に参照して、それに応じてスコアを付ける方法

分類Dev

PHPで文字列14を2014に変換することは可能ですか?

分類Dev

Cで先頭に空白があるstdinから文字列入力を取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    C ++ 14-std :: reverses(ed)std :: stringの先頭にヌル文字が含まれていますか?

  2. 2

    Cの文字列の先頭に文字を追加するにはどうすればよいですか?

  3. 3

    C ++ 14の「constexpr」

  4. 4

    C ++で.txtファイルの先頭に文字列を挿入するにはどうすればよいですか

  5. 5

    Cでのこの逆文字列関数は適切に記述されていませんか?/このコードをより良くする方法は?

  6. 6

    C ++プログラムの先頭に空白の#includeを付ける人がいるのはなぜですか?

  7. 7

    C ++ 14で-nanを取得するにはどうすればよいですか?

  8. 8

    この日付文字列をC#で解析するにはどうすればよいですか

  9. 9

    C ++ 14でのこのC ++ 17フォールド式の良い代替手段は何ですか?

  10. 10

    C ++ 14のLambda-Over-Lambda

  11. 11

    C ++ 11:先頭の文字がアルファ(abcdef)の場合にstringstreamから16進文字列を解析する方法

  12. 12

    最近の MinGW で qmake を C++14 に設定するにはどうすればよいですか?

  13. 13

    cの先頭に空白がある最初の文字列を読み取る方法は?

  14. 14

    C ++でテキストファイルの先頭から文字「」を削除するにはどうすればよいですか?

  15. 15

    nanosleep()の関数はC ++ 14で削除されていますか?

  16. 16

    C ++ 14は、引用符を含む引用符付き文字列を逐語的に抽出します

  17. 17

    「なぜswitchステートメントを文字列に適用できないのですか?」に対する答えはありますか?C ++ 11/14でも本当ですか?

  18. 18

    このC ++ 14再帰テンプレートをC ++ 17で短くする方法はありますか?

  19. 19

    C ++ 14とC ++ 17の違い: `* p ++ = * p`

  20. 20

    C#でスペースを挟んで文字列から先頭の0を削除する方法

  21. 21

    文字列の先頭にスペースを追加するC ++ getline

  22. 22

    g ++は標準14を認識しません(-std = c ++ 14)

  23. 23

    Dev C ++ IDEでC ++ 11またはC ++ 14を有効にする方法

  24. 24

    Dev C ++ IDEでC ++ 11またはC ++ 14を有効にする方法

  25. 25

    C#の大文字から頭字語を作成するより良い方法はありますか?

  26. 26

    C#の大文字から頭字語を作成するより良い方法はありますか?

  27. 27

    Cでスクラブルのようなゲームを作成する。文字列に特定の文字が含まれているかどうかを確認し、その文字を配列に参照して、それに応じてスコアを付ける方法

  28. 28

    PHPで文字列14を2014に変換することは可能ですか?

  29. 29

    Cで先頭に空白があるstdinから文字列入力を取得するにはどうすればよいですか?

ホットタグ

アーカイブ