ホームページ >バックエンド開発 >C++ >std::vector は Push_back() でオブジェクトをコピーしますか?

std::vector は Push_back() でオブジェクトをコピーしますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-04 04:44:01471ブラウズ

Does std::vector Copy Objects on Push_back()?

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 の利用を検討してください。または std::vector>。

注意:

ポインターまたは参照を使用する場合は、参照されるオブジェクトが全体を通して有効であることを確認してください。ベクターの寿命。 Resource Acquisition Is Initialization (RAII) を利用するスマート ポインターを採用すると、この問題に効果的に対処できます。

以上がstd::vector は Push_back() でオブジェクトをコピーしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。