1

連想コンテナを使用する場合、少なくとも時々次の一連のことが観察されました。

container[key].field1 = something1;
container[key].field2 = something2;
container[key].field3 = something3;

たとえば、よりも小さいバイナリ(実行可能ファイル)を生成します

auto& c(container[key]);

c.field1 = something1;
c.field2 = something2;
c.field3 = something3;

私は混乱しています。私の知る限り、すべてのステートメントで値を検索する必要がありますcontainer[key] = ...。コンパイラはこれらのルックアップを最適化しますか? 何をするのが最善ですか?

4

1 に答える 1

5

「どうするのが一番いいですか?」

明日(または、コンパイラ、ライブラリ、またはコーヒーマシンの次のバージョンがリリースされるたびに)すべてが異なるため、そのような詳細を確認しないことをお勧めします。

結局のところ、「やるべき最善のこと」は、

  • 読める
  • 保守可能
  • 自己記録
  • 作品

したがって、解決策を比較して、「気分が良くなる」または「見た目が良くなる」ものを維持してください。すべてが同じオブジェクトで発生するという事実を強調するため、1 回だけルックアップを実行するものを保持します。

于 2012-08-28T10:19:51.043 に答える