[解決済み] std::stringの値渡し、参照渡し [重複]。
2023-03-30 13:05:37
質問
重複の可能性があります。
const std::string &をパラメータとして渡す時代は終わったのでしょうか?
パラメータとして
std::string
を値で渡すべきか、それとも参照 (インライン化されていない関数への) で渡すべきでしょうか? また、小さな文字列最適化 (SSO) を使用する実装についてはどうでしょうか?
どのように解決するのですか?
文字列をどのように扱うかによって、複数の回答があります。
1) 文字列をidとして使用する(変更されない)。const参照で渡すのが、ここではおそらく最良のアイデアでしょう。
(std::string const&)
2) 文字列を変更するが、呼び出し側にはその変更を見せたくない。 値で渡すのが望ましい。
(std::string)
3) 文字列を変更するが、呼び出し元にもその変更を見せたい。 参照で渡すのが望ましい。
(std::string &)
4) 文字列を関数に送ると、関数の呼び出し元はその文字列を二度と使わない。 使用方法
移動セマンティクス
はオプションかもしれません
(std::string &&)
関連
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] const std::string & をパラメータとして渡す時代は終わったのでしょうか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] const std::string & をパラメータとして渡す時代は終わったのでしょうか?