2

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

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

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

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

4

1 回答 1

2

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

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

于 2013-07-14T20:15:34.637 回答