C++ 具名要求:遗留双向迭代器 (LegacyBidirectionalIterator)
来自cppreference.com
遗留双向迭代器 (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 为双向迭代器,支持向后移动 (概念) |