删除矢量指针的最佳方法?

the*_*me3 1 c++ visual-c++

可能重复:
如何正确删除指针?

我正在使用std::vector一组对象进入它以供以后使用,我DETAIL* pPtr = new DETAIL用来创建指针,然后将其插入到向量中.

DETAIL的结构

struct DETAIL {
    int nRef;
    short sRandom;
};
Run Code Online (Sandbox Code Playgroud)

这是删除和擦除向量中指针的最佳方法,不会留下内存泄漏的空间吗?

while(Iter1 != m_Detail.end())
{
    if((*Iter1)->nRef == m_SomeVar)    
    {
        delete  *Iter1;
        m_Detail.erase(Iter1);
        break;
    }

    Iter1++;
}
Run Code Online (Sandbox Code Playgroud)

Nav*_*een 9

不要把原始指针放入vector,而是使用智能指针std::shared_ptr.然后就没有必要了delete,只需erase从指针vector对象和指向对象中自动删除.