【发布时间】:2014-05-15 08:00:57
【问题描述】:
我已经创建了一个堆栈列表。
using namespace std;
list<stack<int>*> stacks;
stack<int> *st = new stack<int>(); //LINE0
stacks.push_back(st);
st->push(10);
stack<int> *last = stacks.back();
stacks.pop_back(); //LINE1
delete last; //LINE2
LINE1 会自动取消分配在 LINE0 上的内存吗?我需要 LINE2 吗?
【问题讨论】:
-
你为什么使用拥有原始指针?使用价值观。或者至少使用
std::unique_ptr... -
如果模板类删除了指针,它如何接受另一种情况,即压入指向静态变量(非动态)的指针?