В векторе Element
деструктор называется lot .Всякий раз, когда узел назначается, вектор уменьшается по размеру, вектор должен перемещаться в памяти, или вектор выходит из области видимости / уничтожается, деструкторы вызываются на элементы, прежде чем они будут изменены / отброшены.Кроме того, конструктор копирования вызывается для присваивания, а конструктор по умолчанию вызывается для инициализации каждой записи.Сортировка такого вектора потребует большого количества копий и уничтожений.
В векторе Element*
он никогда не вызывается, если только вы сами не позвоните delete
.
Посмотрите наУвеличьте shared_ptr
для более разумного решения или unique_ptr
, если у вас есть компилятор с относительно новыми функциями.