Это будет делать то, что вы ожидаете.Тем не менее, clear()
совершенно не требуется, так как vector
будет уничтожен сразу после этого, когда вы покинете текущую область (которая в данном случае также является концом функции и концом программы).Если вы планируете сохранить vector
, чтобы сделать больше с ним, то clear()
удалит все указатели из vector
.На самом деле, vector
уничтожается сразу после этого, поэтому нет смысла вызывать clear()
.
Кроме того, я хочу сказать, что вы должны использовать ++i
в циклеиз i++
, поскольку i++
создает временную переменную, которую компилятор не может оптимизировать (поскольку вы имеете дело с перегруженным оператором).Кроме того, поскольку вы просто собираетесь уничтожить vector
сразу после удаления всего содержимого, нет смысла устанавливать все его элементы на NULL
.Если вы собираетесь повторно использовать элементы, а не очищать или уничтожать vector
, тогда это будет хорошей идеей.Но в этом случае это просто неэффективно.