std::vector 是否在 push_back() 上複製物件?
在使用 Valgrind 進行調查後,使用者得出結論,std::vector 建立了執行push_back()時物件的副本。這就提出了一個問題:
std::vector 不能在不複製的情況下儲存引用或指標嗎?
不幸的是,答案是肯定的。 std::vector::push_back() 依照設計,建立作為參數傳遞的物件的副本並將其儲存在向量中。
避免複製的替代方案:
如果所需的行為是儲存指標或引用而不是副本,請考慮使用std::vector
注意:
使用指標或引用時,請確保引用的物件在整個過程中保持有效向量的生命週期。使用利用資源取得即初始化(RAII)的智慧指標可以有效解決這個問題。
以上是std::vector 是否在 Push_back() 上複製物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!