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

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

DDD
DDDオリジナル
2024-11-03 18:51:29596ブラウズ

Does `std::vector::push_back()` Copy Objects?

std::vector Copy Objects with Push_back?

Valgrind を使用して広範な調査を行った結果、std::vector はベクターにプッシュバックされたオブジェクトのコピーを作成します。この主張は正確ですか?ベクトルはオブジェクトをコピーせずにオブジェクトへの参照またはポインタを維持することはできませんか?

答え:

はい、std::vector::push_back()実際、指定された引数のコピーを作成し、それをベクトルに追加します。ベクター内のオブジェクトへのポインターを格納する場合は、 std::vector を使用します。

ただし、ベクターがオブジェクトへの参照を維持している間、ポインターによって参照されるオブジェクトが有効なままであることを保証する必要があります。 RAII イディオムに基づくスマート ポインターは、この問題の解決策を提供します。

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

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