Boost单遍迭代器和前向遍历迭代器有什么区别?

6
新的迭代器概念标准提案中,我无法解释单向遍历迭代器和前向遍历迭代器之间有任何有用的区别。
“++r”行的“断言/注释”是否意味着前向遍历迭代器可以复制,而单向遍历迭代器不行?
此外,为什么额外的默认构造能力使迭代器模型成为前向遍历?这是什么原因?

不确定是否重复,但它看起来非常接近:输入迭代器和只读前向迭代器之间有什么区别? - Xeo
谢谢您提供的链接,@Xeo。为了明确起见,我希望您能明确声明您对该问题的回答也适用于新的迭代器概念,因为从旧的迭代器转换到新的迭代器不是严格一对一的。您能确认它适用吗? - Mukul M.
1个回答

5

单次遍历迭代器的概念是它比正向遍历迭代器拥有更少的要求。这使得在某些不可能进行多次遍历的情况下,创建一个单次遍历迭代器成为了可能。

想象一下控制台输入。即使你能够复制迭代器,也无法帮助您检索旧的键盘输入。


我理解的“multi pass”是否意味着“多次解除引用而不递增”? - Mukul M.
不,多遍通常意味着对序列进行多次遍历。 - Bo Persson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接