假设我有一个指向“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;
答案 0 :(得分:3)
这将删除订单对象。所以是的,这是正确的方法
不过,您应该考虑使用unique_ptr
或shared_ptr
等智能指针。
答案 1 :(得分:3)
指针是new
的结果吗?有没有其他人先删除它?如果“是”和“否”,那么您的代码将删除该对象。
答案 2 :(得分:0)
是。这是正确的方法。容器在删除时不会删除其内容。