【发布时间】:2016-09-01 13:29:35
【问题描述】:
在QLinkedList的插入函数中,它返回一个迭代器
iterator QLinkedList::insert(iterator before, const T &value)
返回的迭代器是永久的吗?我可以找到使用返回的迭代器插入的原始value 吗?即使在我向列表中/从列表中插入/删除许多其他项目之后?
【问题讨论】:
在QLinkedList的插入函数中,它返回一个迭代器
iterator QLinkedList::insert(iterator before, const T &value)
返回的迭代器是永久的吗?我可以找到使用返回的迭代器插入的原始value 吗?即使在我向列表中/从列表中插入/删除许多其他项目之后?
【问题讨论】:
从文档中我认为QList::iterator 不是“永久的”,而QLinkedList::iterator 在某些情况下是。
对于QList
可以在同一个列表上使用多个迭代器。但是,请注意 在 QList 上执行的任何非常量函数调用都将呈现 所有现有的迭代器未定义。如果您需要将迭代器保留在 很长一段时间,我们建议您使用 QLinkedList 而不是 QList。
对于QLinkedList
可以在同一个列表上使用多个迭代器。如果您将项目添加到 列表中,现有的迭代器将保持有效。如果您删除项目 从列表中,指向已删除项目的迭代器将变为 悬空迭代器。
【讨论】: