list类作为成员该不该在析构函数里主动析构的有关问题

list类作为成员该不该在析构函数里主动析构的问题
#include <list>
using namespace std;
class a
{
list<int> l;
public:
a()
{
l.push_back(1);
  l.push_back(3);
}
~a()
{}
}
int main()
{
a *p;
p=new a;
delete p;
}

我觉得内存泄露了,请问到底内存泄露了吗?
要是把list换成vector或者数组情况有差别吗?

谢谢

------解决方案--------------------
没有内存泄漏
换成什么容器都不应该有泄漏
------解决方案--------------------
你new a后又delete掉,自然没有内存泄漏了。list是库中定义的类,析构函数会处理的
------解决方案--------------------
不会,容器list会自动释放,你自己new的你要记得释放
------解决方案--------------------
你可以用valgrind跑一下。不会泄漏

类成员会自动析构