【问题标题】:Are forward_list iterators stable?forward_list 迭代器稳定吗?
【发布时间】:2013-07-14 19:18:46
【问题描述】:

我需要实现一个请求列表,一次发送一个(节流)并等待答案(始终按顺序)。因此操作是:

  • 插入(在末尾)
  • 删除(开始时)
  • 向前一步(“发送”指针)

我刚刚发现了std::forward_list,并正在考虑使用它。但是为了让它工作,我需要跟踪一个用于发送指针的迭代器和一个用于插入的迭代器,并且当我插入和删除对象时它们不会中断。

直观地说,链表迭代器对于插入和删除来说是稳定的,但有人可以证实这一点。另外,如果我清空列表,是否需要做一个特殊情况,插入迭代器应该重置为before_begin

【问题讨论】:

    标签: c++ stl iterator forward-list


    【解决方案1】:

    标准中的相关引用在 23.3.4.5 [forwardlist.modifiers] 第 1 段(第一句):

    insert_after 的任何重载都不会影响迭代器和引用的有效性,erase_after 只会使迭代器和对已擦除元素的引用无效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 2012-06-02
      • 2023-02-06
      • 1970-01-01
      • 2022-11-28
      相关资源
      最近更新 更多