簡體   English   中英

刪除要從向量中刪除的指針

[英]Delete a pointer to be erased from a vector

假設我有一個指向“ Order ”對象的指針向量。 現在,我想從此向量中刪除訂單。 我想知道以下是否是刪除此類指針的正確方法?

std::vector<Order*> orders; 

// somehow I obtained a vector of Order*, and an iterator it that points to
// an order that I want to remove completely. 

// does the following work? 
Order *order = *it;
orders.erase(it);
delete order;

這將刪除訂單對象。 是的,這是正確的方法。
不過,您應該考慮使用智能指針,例如unique_ptrshared_ptr

指針是new的結果嗎? 還有其他人先刪除它嗎? 如果“是”和“否”,則您的代碼將刪除該對象。

是。 這是正確的方法。 容器在擦除后不會刪除其內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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