[英]If I create vectors using new and place them in a vector, will the outer vector or inner vector desctructor delete them?
將vector
s 放入vector
s ( vector<vector<string>>
) 有很多問題,我必須新建內部向量和push_back(*pointer)
。 外部vector
erase()
會delete
它們嗎? 我嘗試了顯式delete
並得到了更多錯誤。 如何管理創建對象以放入容器類(通過引用)不是相同的本地對象但不需要跟蹤delete
?
我假設您在這里談論的是 C++。
當您將原始指針放入vector
時, vector
被銷毀時不會刪除它們。 如果你想讓vector
刪除指針,你需要使用智能指針,比如shared_ptr
或unique_ptr
(不要使用auto_ptr
)。
然而,當涉及到vector
時,將它們分配在堆上幾乎沒有意義。 由於在 C++11 中引入了移動語義,因此沒有任何理由不將一個vector
插入另一個vector
。 所以如果你想嵌套vector
s,只需 go 和vector<vector<int>>
,而不是vector<vector<int>*>
或vector<unique_ptr<vector<int>>>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.