Задать вопрос
@WTFAYD

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

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

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


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

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

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