Rogue Wave バナー
前へマニュアルの先頭へ目次次へ

22.2 ストリーム反復子とコンテナ反復子との違い

通常のコンテナ反復子と異なり、ストリーム反復子で設定できるのは、要素に対する、変更不可の読み取り専用アクセスか、書き込み専用アクセスです。istream_iterator は、読み取り専用の反復子であり、要素にアクセスすることはできますが、割り当てによる変更はできません。これに対して ostream_iterator では、ストリームに対する書き込み専用のアクセスを提供します。

istream_iteratoroperator++ を呼び出すと、ストリームから新しい値が読み取られ、const T 値に保存されます。T は書き込まれる要素の型です。const 値は、定義上、割り当てによる上書きは禁止されており、間接参照演算子 * で参照することができます。反復子における、この要素の保存動作は、istream_iterator 固有の動作です。

さらに、コンテナ反復子と異なり、ストリーム反復子は、その使用をワンパスアルゴリズムに限定するために、前方参照で 1 度のみ要素にアクセスできるようになっています。ストリームの内容を繰り返し読み取る場合は、パスごとに個別の反復子を作成します。

istream_iterator には、テンプレート引数 Distance があり、これは ptrdiff_t と定義されていますが、この実装では使用していません。ostream_iterator には距離型のテンプレート引数がないため、距離の概念はありません。


前へマニュアルの先頭へ目次次へ

Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。


OEM リリース, 1998 年 6 月