使用STL列表容器,链接列表作为属性需要初始化?

时间:2014-04-28 11:14:14

标签: c++

我很困惑,当使用STL列表作为类中的属性时,我们是否需要在构造函数中初始化链表,以及如何使用析构函数将内存释放回系统?我知道STL列表有一个desctrutor自动删除链表。但是,我的导师要求我们在课程中包含析构函数。所以我想知道如何处理list属性。

所以我有一个Column类,其中包含char的链接列表作为其属性。到目前为止,我有:

class Column
{
   private:

   list<char> chars;
   list<char>::const_iterator itr;

   public:

   Column()
   {  
   }

   ~Column()
   {
   }
.....
};

所以我需要初始化构造函数中的链表列表,我是否需要删除析构函数中的链表?我知道我们通常在使用new后使用delete。或者我可以将构造函数和析构函数的内容保留为空吗? 谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

您不需要显式调用std :: list成员的构造函数和析构函数。编译器会为你处理这些。

所以是的,你可以将这个类的构造函数和析构函数留空。

答案 1 :(得分:1)

在您的情况下,std::list负责分配和取消分配内存,因此您无需在析构函数中执行任何操作。将构造函数和析构函数体保持为空将正常工作,并且不会发生内存泄漏。