Как освободить вектор указателя?

Как освободить память в векторе указателя? Вот код:

class A
{
    private:
        int x,y,z;
    public:
        A(param1, param2, param3)
        {
            x=param1;
            y=param2;
            z=param3;
        }
        ~A()
        {
            //prompts an alertbox, warning me about the successful call of the destructor;
        }
};

...
vector<A*> list;
list.push_back(new A(1,2,3));

list.erase(list.begin()+index);//SHOULD delete the object from the memory;
list.clear();

Я обнаружил, что .erase () не освобождает память и не вызывает деструктор; Я пытался использовать delete для каждой записи списка с итерацией, но после одной итерации происходит сбой. Уже проверено, была ли запись в списке уже NULL, чтобы избежать ошибок. Я что-то упускаю? Кроме того, я должен использовать только STL, ускорение не требуется.

5
задан Brian Tompsett - 汤莱恩 9 July 2015 в 15:06
поделиться