@WTFAYD

Удаление элемента из контейнера Qt вызывает удаление объекта, созданного динамически?

Покажу все на примере.

QMap<int, PlotCurve*> m_curveMap;
// ...
PlotCurve* curve = new PlotCurve(this, data);
m_curveMap[id] = curve;
// ...
m_curveMap.remove(id);


Элемент под ключом id удалится из кучи в этом случае, или он удалится только из контейнера? Если нет, то как лучше реализовать удаление одновременно из памяти и контейнера?
  • Вопрос задан
  • 347 просмотров
Пригласить эксперта
Ответы на вопрос 1
PavelK
@PavelK
Позновато, но всё же - нет, не удаляет объект, остаётся битый указатель. Если нужно полностью очистить, то qDeleteAll(); map.clear(); А лучше использовать QSharedPointer.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы