在QList有任何删除操作后,迭代器是否指向QList的元素仍然有效? 我需要从QList中删除一些元素,所以我将这些元素的迭代器存储到另一个容器中,然后使用此保存的迭代器并用于从QList中删除必需的元素。 它看起来像这样:QT的QList在容器修改后保存迭代器吗?
// inside a loop for 'list'
QList<type>::iterator it = list.begin() + j;
removing.append(it);
// end of loop for 'list'
...
while(removing.empty() == false)
{
list.erase(removing.takeFirst());
}
所以,当removing
容器包含超过1元,应用程序崩溃时(分段错误)试图删除第二个元素,而首当被成功擦除。 是什么原因,有什么办法用迭代器删除元素?
非常感谢!使用QLinkedList帮助和工作正确! – ASten 2011-12-28 16:56:31