I've created a list of stacks.
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
LINE2 will cause an unhandled exception. Will LINE1 automatically deallocate the memory allocated at LINE0? Is LINE2 not necessary?