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 为双向迭代器,支持向后移动 (概念) |
迭代器库 | 提供迭代器的定义、迭代器表征、适配器及工具函数 |