名前空間
変種
操作

名前付き要件: BidirectionalIterator

提供: cppreference.com
< cpp‎ | named req
 
 
名前付き要件
 

BidirectionalIterator は双方向に移動できる (つまりインクリメントとデクリメントができる) ForwardIterator です。

[編集] 要件

以下の内容を満たす場合、型 ItBidirectionalIterator を満たします。

さらに、

  • It 型のイテレータ a, b
  • std::iterator_traits<It>::reference によって表される型 reference

が与えられたとき、以下の式が有効でなければならず、指定された効果を持たなければなりません。

戻り値 同等な式 注釈
--a It& 事前条件:
  • a がデクリメント可能 (a == ++b であるような b が存在する)

事後条件:

  • a が逆参照可能
  • --(++a) == a
  • --a == --b の場合に a == b が成り立つ
  • &a == &--a
a-- const It& に変換可能 It temp = a;

--a;

return temp;
*a-- reference

可変BidirectionalIteratorOutputIterator の要件を追加で満たす BidirectionalIterator です。

[編集] ノート

begin イテレータはデクリメント可能ではありません。 --container.begin() が評価された場合、動作は未定義です。

任意の双方向イテレータが逆参照可能である必要やデクリメント可能である必要はありません (特に、 end イテレータは逆参照可能ではありませんがデクリメントは可能です)。

[編集] 関連項目

ForwardIterator が後方移動をサポートする双方向イテレータであることを指定します
(コンセプト) [edit]