c++ - forward_list 迭代器稳定吗?

标签 c++ stl iterator forward-list

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

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

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

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

最佳答案

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

None of the overloads of insert_after shall affect the validity of iterators and references, and erase_after shall invalidate only iterators and references to the erased elements.

关于c++ - forward_list 迭代器稳定吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17642800/

相关文章:

c++ - 如果从同一个信号调用两个槽,Qt 可以同时调用它们吗?

c++ - 字符串输入大于 1000 个字符时执行挂起

c++ - 区分同一类型的多个异常

c++ - 如何替换我的 'for' 循环以通过 STL mimax 算法查找最小值/最大值

c++ - 复制算法与容器构造函数

python - 迭代 Torchtext.data.BucketIterator 对象抛出 AttributeError 'Field' 对象没有属性 'vocab'

python迭代类似dict的对象

android - Qt 和 Android - 从图库中的图像获取路径

std::vector<std::array<char, 2>> 的 C++ 数据连续性

c# - 为什么 c# 迭代器跟踪创建线程而不是使用互锁操作?