想象我有这样的结构删除存储在列表中的对象的空指针?
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'调用完全没有意义。 –