SGI

双向迭代器

类别: 迭代器 组件类型: 概念

描述

双向迭代器是一种既可以递增又可以递减的迭代器。双向迭代器可以递减的要求是区分双向迭代器和前向迭代器的唯一之处。

细化

前向迭代器

关联类型

前向迭代器相同。

符号

X 双向迭代器模型的类型
T 的价值类型X
i, j 类型为的对象X
t 类型为的对象T

定义

有效表达式

除了前向迭代器中定义的表达式外,以下表达式必须有效。
名称 表达式 类型要求 返回类型
前递减 --i   X&
后递减 i--   X

表达式语义

表达式的语义仅在前向迭代器中未定义的情况下定义。
名称 表达式 前提条件 语义 后置条件
前递减 --i i是可解引用或越界。存在可解引用的迭代器j这样i == ++j. i被修改为指向前一个元素。 i是可解引用的。&i = &--i. 如果i == j, 那么--i == --j. 如果j是可解引用的,并且i == ++j, 那么--i == j.
后递减 i-- i是可解引用或越界。存在可解引用的迭代器j这样i == ++j. 等价于
{ 
  X tmp = i; 
  --i; 
  return tmp; 
}
 

复杂度保证

双向迭代器上操作的复杂度保证为摊销常数时间。

不变量

递增和递减的对称性 如果i是可解引用的,那么++i; --i;是一个空操作。类似地,--i; ++i;是一个空操作。

模型

注意

另请参阅

输入迭代器, 输出迭代器, 前向迭代器, 随机访问迭代器, 迭代器概述
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 商标信息