push_back() で std::vector はオブジェクトをコピーしますか?
Valgrind を使用した調査の後、ユーザーは std::vector がPush_back() を実行するときのオブジェクトのコピー。
Can't std::vector Store References or Pointers Without Copying?
残念ながら、答えは肯定的です。 std::vector::push_back() は、設計どおり、引数として渡されたオブジェクトのコピーを作成し、それをベクター内に保存します。
コピーを避けるための代替案:
コピーではなくポインターまたは参照を保存することが望ましい動作である場合は、std::vector
注意:
ポインターまたは参照を使用する場合は、参照されるオブジェクトが全体を通して有効であることを確認してください。ベクターの寿命。 Resource Acquisition Is Initialization (RAII) を利用するスマート ポインターを採用すると、この問題に効果的に対処できます。
以上がstd::vector は Push_back() でオブジェクトをコピーしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。