Нужно ли чистить объекты в деке в деструкторе? - PullRequest
0 голосов
/ 09 марта 2011

Моя дека содержит объект, НЕ указатель.

, таких как:

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); 

Я знаю, если это указатель, я должен очистить его в десконструкторе.

Мой вопрос: если это просто объект, правда ли, что мне не нужно чистить MyObject, как:

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

1 Ответ

3 голосов
/ 09 марта 2011

Нет, вам не нужно очищать std::deque, если вы храните там только объекты-значения.Деструктор std::deque будет вызывать деструктор для каждого объекта, который он содержит.

...