push_back を使用して追加するときに std::vector はオブジェクトをコピーしますか?
Valgrind を使用して綿密に調査した結果、一部のユーザーは std::vector はオブジェクトをコピーするという結論に達しました。 ::vector は、push_back() メソッドを使用してコンテナにプッシュされたオブジェクトのコピーを作成します。このため、コピーを作成せずに参照やポインタを保持するベクターの機能について疑問が生じています。
std::vector の動作
この仮定は正しいです。オブジェクトが std::vector
参照を保存するための代替手段またはポインタ
ベクトルにオブジェクトへの参照またはポインタを格納する場合、解決策は std::vector<何でも*> を使用することです。 std::vector の代わりに。これにより、参照されるオブジェクトをコピーせずに、参照またはポインタを直接保存できます。
オブジェクトの有効性の維持
std::vector
以上が`push_back()` を使用すると `std::vector` はオブジェクトをコピーしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。