名前空間
変種
操作

名前付き要件: InputIterator

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

InputIterator はその指す先の要素から読み込むことができる Iterator です。 InputIterator はシングルパスアルゴリズムに対する有効性を保証するだけです。 InputIterator i がいったんインクリメントされると、その以前の値の全てのコピーは無効化される可能性があります。

[編集] 要件

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

さらに、

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

戻り値 同等な式 注釈
i != j bool に文脈的に変換可能 !(i == j) 事前条件: (i, j)== の領域内である。
*i referencevalue_type に変換可能 i == j かつ (i, j)== の領域内であれば、これは *j と同等です。

事前条件: i が逆参照可能。

(void)*i, *i*i と同等です。

i->m (*i).m 事前条件: i が逆参照可能。
++i It&

事前条件: i が逆参照可能。

事後条件: i が逆参照可能または i が終端。

事後条件: i の以前の値のあらゆるコピーは逆参照可能あることも == の領域内であることももはや要求されません。

(void)i++ (void)++i
*i++ value_type に変換可能。 value_type x = *i;

++i;

return x;

[編集] ノート

== の領域内である」は、2つのイテレータの間で等しさの比較が定義されているという意味です。 入力イテレータの場合、等しさの比較はすべての値に対して定義されている必要はなく、 == の領域内である値の集合は時間と共に変化しても構いません。

ForwardIterator でない入力イテレータに対する reference 型は、参照型である必要はありません。 入力イテレータの逆参照はプロキシオブジェクトを返したり、 (std::istreambuf_iterator の場合のように) value_type それ自身を値返ししても構いません。

[編集] 関連項目

型が入力イテレータである、つまり、その参照先の値を読み込むことができ、前置または後置インクリメントができることを表します
(コンセプト) [edit]