想象我有這樣的結構刪除存儲在列表中的對象的空指針?
struct datalist {
int index;
int number;
};
,並與我們使用的是結構,我們將使用一個列表
while(Iter != m_SomeList.end());
{
if(*Iter)
{
//do something
Iter++;
}
else //Iterator is NULL so can we erase it from the list like so?
{
datalist* pAR = *Iter;
Iter = m_SomeList.erase(Iter);
delete pAR; pAR = NULL;
}
}
所以基本的問題是,我們可以刪除和擦除空/無效的迭代器從列表中,如果它們是NULL?
糾正我,如果我錯了,但不會將您的測試確定Iter是否爲空(* Iter)如果Iter實際上是空的,則引用空指針? – Greg
你似乎有一個指針列表。這本身就不好,但它也使'delete'調用完全沒有意義。 –