我正在尝试这样做以销毁Products
:
vector < queue <Product*> > freshDeposit = ...;
for(queue<Product*> q : freshDeposit){
for (Product p : q) {
delete p;
}
}
但这不起作用!你能帮助我吗? 谢谢!
答案 0 :(得分:2)
如果可用,你几乎总是喜欢智能指针而不是原始指针。
vector<queue<unique_ptr<Product>>> freshDeposit = ...;
freshDeposit.clear();
或者如果你想保留空队列,
for(queue<unique_ptr<Product>> &q : freshDeposit) {
q.clear();
}
如果您确实希望按原样维护数据结构,但只是发布Product
个对象,那么您必须使用deque
而不是queue
并调用{{ 1}}指针。
reset()