我是否需要清除析构函数中的双端队列中的对象?

时间:2011-03-09 01:26:30

标签: c++ deque

我的双端队列包含对象,而非指针。

如:

class MyObject                // no pointer inside the object, all simple type/prmitive
{
  string name;
  string value;
}

MyObject object1, object2;
m_deq.push_back(object1); 
m_deq.push_back(object2); 

我知道如果它是指针,我必须在desconstructor中清理它。

我的问题是:如果只是对象,我是否真的不需要像以下一样清理MyObject:

for ( unsigned int i = 0 ; i < m_deq.size(); i++ )
{
    delete &m_deq[i];
}

1 个答案:

答案 0 :(得分:3)

不,如果您只存储了值对象,则无需清除std::dequestd::deque析构函数将为它包含的每个对象调用析构函数。