在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