• ベストアンサー

constについて

void SMonster::walk(const std::string& str){ std::cout<<"てきてき"<<std::endl; power--; } のconst std::string& strと書くと効率がよいと本に書いてあったのですが、なぜ効率がいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

constをつけることで効率よくはなりませんね。 速くなるといってもstd::stringの場合「ほんのちょっと」です。 std::stringの実装次第ですが、ほとんどの場合文字列 それ自体はヒープ上に確保されますから、引数に引き渡される (コピーされる)サイズはそんなに大きくありません。 なのでコピーにかかる時間もわずか。

79562
質問者

お礼

回答ありがとうございます。文字列の場合ヒープじゃなくてテキストセグメントに保存されるのではなかったでしたっけ?

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

それはまたよくわからん本だなぁ. 「コピーの手間が減り」ってあるなら, 普通は「参照にすると」だよなぁ. どうしてそこに const が関係するんだろう!?

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「何と比較して」効率がよいと書いてあったのでしょうか?

79562
質問者

お礼

コピーの手間が減り一般的には効率がよいと書いてありました。

関連するQ&A