Контейнеры STL всегда запрашивают деструкторы по умолчанию для элементов, которые они содержат, когда очищаются.Для набора, содержащего необработанные указатели 'char *', это ничего не изменит, и память будет вытекать.Вы сами ответственны за очистку ip такого рода памяти.
По этой причине обычно считается плохой практикой хранить необработанные указатели в контейнерах STL.
Если вам действительно нужно использовать набор STL св нем есть необработанные строки C, это нормально, но имейте в виду, что вам придется восстанавливать память самостоятельно.Вам также нужно будет предоставить пользовательский компаратор для набора, чтобы сохраненные строки сравнивались по значению, а не по указателю (порядок по умолчанию в 'char *' просто сравнивает указатели, а не строки).