Я пытаюсь создать алгоритм, который может рисовать объекты моей изометрической игры в правильном порядке. Мои сущности хранятся в векторе указателей.
В функции рисования я сначала создаю новый вектор с теми же указателями, а затем начинаю с цикла for, который зацикливает количество сущностей, которые я хочу нарисовать. Внутри этого цикла есть еще один цикл, который определяет, какой объект должен быть нарисован, и когда объект рисуется, его указатель удаляется из вектора с помощью vector.erase (), поэтому один и тот же объект не будет нарисован дважды (вот почему я создаю копию вектора, содержащего указатели объектов).
Как бы то ни было, сам мой код работает, и объекты рисуются так, как я хочу, но у меня возникает утечка памяти (я действительно вижу, что объем памяти в диспетчере задач Windows увеличивается на 28 Кбит / с).
Утечка памяти сохраняется, даже если я закомментирую все, кроме этого:
vector<Entity*> list = ent_list; // ent_list is the list of entity pointers
list.clear();
Так что я предполагаю, что что-то упустил, но я не уверен, что. Я полагал, что, поскольку я не использовал «новое», память позаботилась бы, но, очевидно, это не так ... Надеюсь, кто-то может мне помочь!
/ Феодор