QList / QLinkedList的迭代器是永久的吗?

时间:2016-09-01 13:29:36

标签: c++ qt

在QLinkedList的insert函数中,它返回一个迭代器

iterator QLinkedList::insert(iterator before, const T &value)

是永久返回的迭代器吗?我可以通过使用返回的迭代器找到我插入的原始value吗?即使我在列表中插入/删除了许多其他项目?

1 个答案:

答案 0 :(得分:1)

从文档中我假设QList::iterator不是“永久”,而QLinkedList::iterator在某些情况下。

QList

  

可以在同一列表中使用多个迭代器。但是,请注意   在QList上执行的任何非const函数调用都将呈现   所有现有的迭代器都未定义。如果你需要保持迭代器超过   很长一段时间,我们建议您使用QLinkedList而不是   的QList。

QLinkedList

  

可以在同一列表中使用多个迭代器。如果您要添加项目   列表,现有的迭代器将保持有效。如果您删除项目   从列表中,指向已删除项目的迭代器将成为   悬空迭代器。

请参阅QList::iteratorQLinkedList::iterator