Можно создать дубликат:
how to properly delete pointer?лучший способ удалить векторный указатель?
я использую std::vector
поставить группу объектов в ней для дальнейшего использования, я использую DETAIL* pPtr = new DETAIL
создать указатель, а затем вставить его в вектор.
структура детальности
struct DETAIL {
int nRef;
short sRandom;
};
Это лучший способ удалить и удалить указатель в векторе, не оставляя места для утечек памяти?
while(Iter1 != m_Detail.end())
{
if((*Iter1)->nRef == m_SomeVar)
{
delete *Iter1;
m_Detail.erase(Iter1);
break;
}
Iter1++;
}
Почти всегда неправильно указывать указатель на вектор и/или вектор типов указателей. (Почти всегда. Не делай этого. –
не задал этот вопрос пару часов назад? http://stackoverflow.com/questions/10854274/how-to-properly-delete-pointer – PermanentGuest
Если ваш вектор содержит исходные указатели, вы можете абсолютно ничего сделать, чтобы защитить его, если вектор, например, уничтожен исключением. Возможность утечек всегда есть. –