Если доступно, вы должны почти всегда выбирать умные указатели над необработанными указателями.
vector<queue<unique_ptr<Product>>> freshDeposit = ...;
freshDeposit.clear();
Или, если вы хотите сохранить пустые очереди,
for(queue<unique_ptr<Product>> &q : freshDeposit) {
q.clear();
}
Если вы действительно, действительно, хотите сохранить структуру данных, как есть, но только освободить Product
объекты, то вы должны используйте deque
вместо queue
и позвоните по телефону reset()
по указателям.
vector<deque<unique_ptr<Product>>> freshDeposit = ...;
for(deque<unique_ptr<Product>> &q : freshDeposit) {
for(unique_ptr<Product> &p : q) {
p.reset();
}
}
«Продукт» не относится к типу «Продукт *». – juanchopanza
Вы не можете удалить «Продукт p», потому что это не указатель. – deviantfan
Auch! как быстро спускаются голоса с этими типами вопросов ... Даже когда они действительны. –