C++ 具名要求:遗留双向迭代器 (LegacyBidirectionalIterator)
遗留双向迭代器 (LegacyBidirectionalIterator) 是能双向移动(即自增与自减)的遗留向前迭代器 (LegacyForwardIterator) 。
要求
以下情况下,类型 It
满足 遗留双向迭代器 (LegacyBidirectionalIterator)
- 类型
It
满足遗留向前迭代器 (LegacyForwardIterator)
且,给定
-
a
与b
,为类型It
的迭代器 -
reference
,为std::iterator_traits<It>::reference
所指代的类型
则下列表达式必须合法并拥有其效果
表达式 | 返回 | 等价表达式 | 注意 |
---|---|---|---|
--a | It& | 前提条件:
后条件:
| |
a-- | 可转换到 const It& | It temp = a; --a; |
|
*a-- | reference |
可变(mutable)遗留双向迭代器 (LegacyBidirectionalIterator) 是还额外满足遗留输出迭代器 (LegacyOutputIterator) 要求的遗留双向迭代器 (LegacyBidirectionalIterator) 。
注解
起始迭代器不可自减。且若求值 --container.begin() 则行为未定义。
双向迭代器不必可解引用、可自减(尤其是尾迭代器不可解引用但可自减)。
概念为了定义 std::iterator_traits,定义了以下仅用于阐释的概念:
其中仅用于阐释的概念 |
(C++20 起) |
参阅
(C++20) |
指定 forward_iterator 为双向迭代器,支持向后移动 (概念) |