まあ、タイトルはかなり簡単だと思います。私は、重いオブジェクトをコピーすることを避けるべきだと何度も読んだことがありますが、それはかなり合理的なようです(誰がメモリホッグになりたいですか?)。問題は、オブジェクトが重いと見なされるのはいつかということです。メンバーは何人ですか?
質問する
183 次
1 に答える
5
渡すオブジェクトがポインタのサイズよりも大きい場合(通常、32ビットで4バイト、64ビットで8バイト)、コピーを回避する方が効率的です。
参照/ポインターで渡す必要があるかどうかは、追加の作業量と、データで何をするかによって異なります。コピーを作成して関数で変更するためだけに参照で渡すと、目的が果たせなくなります。const by-referenceとして渡すだけで十分な場合は、おそらくそうすることをお勧めします。
ただし、ほとんどのコンパイラは、コードが最適化をオンにしてコンパイルされたときに、読み取り専用オブジェクトのコピーを最適化するのに十分なほど賢いことに注意してください。したがって、ボトルネックになり、定量的に証明できない限り、実際に心配する必要はありません。
于 2012-05-08T18:22:28.297 に答える