我的双端队列包含对象,而非指针。
如:
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];
}
答案 0 :(得分:3)
不,如果您只存储了值对象,则无需清除std::deque
。 std::deque
析构函数将为它包含的每个对象调用析构函数。