首頁 >後端開發 >C++ >`std::vector::push_back()` 是否複製物件?

`std::vector::push_back()` 是否複製物件?

DDD
DDD原創
2024-11-03 18:51:29682瀏覽

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

std::vector 是否使用 push_back 複製物件?

使用 Valgrind 進行廣泛調查後,有人建議 std::vector建立推迴向量中的任何物件的副本。這個說法準確嗎?向量能否在不複製物件的情況下維護對物件的參考或指標?

答案:

是的,std::vector::push_back()實際上建立了所提供參數的副本並將其新增至向量中。如果您打算在向量中儲存指向物件的指針,請使用 std::vector而不是 std::vector

但是,您必須保證指標所引用的物件保持有效,同時向量維護對它們的參考。基於 RAII 慣用法的智慧指標為這個問題提供了解決方案。

以上是`std::vector::push_back()` 是否複製物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn