前向迭代器
|
|
类别:迭代器 |
组件类型:概念 |
描述
前向迭代器是一种迭代器,对应于线性值序列的通常直观概念。可以将前向迭代器(与输入迭代器和输出迭代器不同)用于多遍算法。但是,前向迭代器不允许向后遍历序列,而只能像其名称所暗示的那样向前遍历。根据平凡迭代器的要求,作为前向迭代器模型的类型可以是可变的或不可变的。
细化
输入迭代器,输出迭代器关联类型
与输入迭代器相同符号
X
|
作为前向迭代器模型的类型 |
T
|
的取值类型X
|
i, j
|
类型为的对象X
|
t
|
类型为的对象T
|
定义
有效表达式
前向迭代器没有定义超出输入迭代器中定义的任何新表达式。但是,输入迭代器中描述的一些限制已放宽。
名称 |
表达式 |
类型要求 |
返回类型 |
前置递增 |
++i
|
|
X&
|
后置递增 |
i++
|
|
X
|
表达式语义
前向迭代器没有定义超出输入迭代器中定义的任何新表达式。但是,输入迭代器中描述的一些限制已放宽。
名称 |
表达式 |
前提条件 |
语义 |
后置条件 |
前置递增 |
++i
|
i可解引用 |
i指向下一个值 |
i可解引用或超出末尾。&i == &++i如果i == j,则++i == ++j. [1]
|
后置递增 |
i++
|
i可解引用 |
等价于{X tmp = i; ++i; return tmp;}
|
i可解引用或超出末尾。 [1] |
复杂度保证
前向迭代器上的操作的复杂度保证为摊销常数时间。不变式
模型
注释
[1] 输入迭代器中描述的限制已被删除。递增前向迭代器不会使旧值的副本失效,并且保证如果i并且j可解引用,并且i == j,则++i == ++j。由于这两个事实,可以两次遍历同一个前向迭代器。
另请参阅
输入迭代器,输出迭代器,双向迭代器,随机访问迭代器,迭代器概述
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。
商标信息