类别: 迭代器 | 组件类型: 概念 |
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;是一个空操作。 |