2016-12-01 13 views
-2

すべての標準コンテナは、少なくとも順方向イテレータ型をサポートします。この場合、入出力イテレータの必要性は何ですか?入出力イテレータの必要性は何ですか?

+1

_input_タイプと_output_イテレータタイプ(特性)はありますか? –

答えて

0

すべての標準コンテナは、少なくとも前方イテレータタイプをサポートしています。この場合、入出力イテレータの必要性は何ですか?

これらは直交しています。 順方向反復子は、反復子タイプをそれに適用される特定の操作に制限します。イテレータをコピーし、変換操作のパラメータとして使用される

入力出力が容器に適用(および対応する出力容器もたらします)。それらは、順方向イテレータまたは必要な操作を可能にする他のタイプにすることができます。

+0

あなたは正しいですが、私の質問は、入力または出力のイテレータを返すコテナーですか?私はベクトル上のコピーを使用する場合は、私はrandom_access_iteratorを渡しています(それは入力または出力演算子のすべての機能を持っていますが)。 – user1438832

+0

@ user1438832私はまだあなたに関心を持っていません。コンテナを使用すると、_iterators_を取得できます。これらが入力または出力に使用される場合、使用される変換関数に関連します。 –

2

ストリームイテレータは、純粋な入力イテレータまたは出力イテレータです。

+0

ありがとう、私はそれを得た。 – user1438832

1

アルゴリズムは、イテレータによって記述された値のシーケンスで動作します。これがSTLの主要な抽象化です。アルゴリズムはイテレータがどこから来たかには関心がありません。イテレータのために定義されている操作だけが気になります。

コンテナは、イテレータを提供するために一連の値を管理する方法の1つですが、唯一の方法ではありません。特に、ファイル操作は通常コンテナではなく、std::istream_iterator(入力イテレータ)とstd::ostream_iterator(出力イテレータ)のようなイテレータを介して行われます。

関連する問題