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 为双向迭代器,支持向后移动  (概念)  |