0

假设我有一个指向“ 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;
4

3 回答 3

3

这将删除订单对象。所以是的,这是正确的方法。
不过,您应该考虑使用智能指针,如unique_ptror shared_ptr

于 2012-05-31T15:58:56.533 回答
3

指针是 的结果new吗?有没有人先删了?如果“是”和“否”,那么您的代码将删除该对象。

于 2012-05-31T16:05:45.663 回答
0

是的。这是正确的方法。容器在擦除时不会删除其内容。

于 2012-05-31T15:58:22.243 回答