QList/QLinkedList 的迭代器是永久的吗? [复制]
Posted
技术标签:
【中文标题】QList/QLinkedList 的迭代器是永久的吗? [复制]【英文标题】:Is QList/QLinkedList 's iterator permanent? [duplicate] 【发布时间】:2016-09-01 13:29:35 【问题描述】:在QLinkedList的插入函数中,它返回一个迭代器
iterator QLinkedList::insert(iterator before, const T &value)
返回的迭代器是永久的吗?我可以找到使用返回的迭代器插入的原始value
吗?即使在我向列表中/从列表中插入/删除许多其他项目之后?
【问题讨论】:
***.com/questions/8657244/…QList
's not a linked-list.
【参考方案1】:
从文档中我认为QList::iterator
不是“永久的”,而QLinkedList::iterator
在某些情况下是。
对于QList
可以在同一个列表上使用多个迭代器。但是,请注意 在 QList 上执行的任何非常量函数调用都将呈现 所有现有的迭代器未定义。如果您需要将迭代器保留在 很长一段时间,我们建议您使用 QLinkedList 而不是 QList。
对于QLinkedList
可以在同一个列表上使用多个迭代器。如果您将项目添加到 列表中,现有的迭代器将保持有效。如果您删除项目 从列表中,指向已删除项目的迭代器将变为 悬空迭代器。
见QList::iterator和QLinkedList::iterator
【讨论】:
以上是关于QList/QLinkedList 的迭代器是永久的吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章