簡體   English   中英

如果我使用 new 創建向量並將它們放在向量中,外部向量或內部向量析構函數會刪除它們嗎?

[英]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_ptrunique_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM