елемента со списка ?. Если для елемента выделять память через new, нужно вручную освобождать или erase все сделает?
сам выделил сам и удаляй
Покажи код, тип контейнера.
Object* obj = new Object(); std::list <Object *> list; list.push_back(obj);
Что то типа такого
Контейнер удаляет автоматически тот объект, которым владеет. Тут объект — указатель на Object . Он будет удалён автоматом. Но то, на что он ссылается — нет, потому что контейнер не владеет этим объектом. Если ты желаешь чтобы Object автоматом удалялся при удалении из контейнера, можно сделать двумя способами: — хранить по значению std::list <Object > list; — хранить умный, владеющий указатель std::list < std::unique_ptr<Object> > list;
у тебя контейнер не управляет временем жизни объектов, надо все руками удалять, либо перейти на std::list<std::unique_ptr<Object>> (это рекомендованный вариант)
Обсуждают сегодня