Нет, нет необходимости очищать устройство перед его уничтожением.
Обратите внимание, что очень редко требуется выделять std::set
(или любой стандартный контейнер) вручную. Вам было бы гораздо лучше просто поместить его в автоматическое хранилище и позволить C ++ выполнить очистку за вас:
Так что вместо
set<SomeStruct *> *some_cont = new set<SomeStruct *>;
использование
set<SomeStruct *> some_cont;
затем измените все some_cont->
на some_cont.
и удалите delete some_cont
(контейнер будет уничтожен, когда main
выйдет автоматически.
Преимущество для таких действий:
- Вам не нужно помнить, чтобы удалить контейнер, и
- Вам не нужно делать дорогостоящее выделение памяти заранее.
Также гораздо сложнее в C ++ поместить вещи в автоматическое хранилище.