【问题标题】:Is QList/QLinkedList 's iterator permanent? [duplicate]QList/QLinkedList 的迭代器是永久的吗? [复制]
【发布时间】:2016-09-01 13:29:35
【问题描述】:

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

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

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

【问题讨论】:

标签: c++ qt


【解决方案1】:

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

对于QList

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

对于QLinkedList

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

QList::iteratorQLinkedList::iterator

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-26
    • 2017-07-05
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2015-05-20
    相关资源
    最近更新 更多