名前空間
変種
操作

std::istream_iterator<T,CharT,Traits,Distance>::istream_iterator

提供: cppreference.com
 
 
イテレータライブラリ
イテレータコンセプト
(C++20)
(C++20)
(C++20)
(C++20)
イテレータプリミティブ
イテレータアダプタ
ストリームイテレータ
イテレータのカスタマイゼーションポイント
イテレータ操作
(C++11)
(C++11)
範囲アクセス
(C++11)(C++14)
(C++11)(C++14)
(C++17)(C++20)
(C++14)(C++14)
(C++14)(C++14)
(C++17)
(C++17)
 
 
constexpr istream_iterator();
(1)
istream_iterator( istream_type& stream );
(2)
istream_iterator( const istream_iterator& other ) = default;
(3)
1) ストリーム終端イテレータを構築し、格納される値を値初期化します。 定義内の初期化子 auto x = T(); が定数初期化子の場合、このコンストラクタは constexpr です。
2) イテレータを初期化し、 stream のアドレスをデータメンバに格納し、キャッシュされた値のデータメンバを初期化するために入力ストリームから最初の入力を行います。
3) other のコピーを構築します。 std::is_trivially_copy_constructible_v<T>true であれば、このコピーコンストラクタはトリビアルなコピーコンストラクタになります。

[編集] 引数

stream - istream_iterator を初期化するためのストリーム
other - 同じ型の別の istream_iterator

[編集] 欠陥報告

以下の動作変更欠陥報告は以前に発行された C++ 標準に遡って適用されました。

DR 適用先 発行時の動作 正しい動作
P0738R2 C++98 the first read may be deferred to the first dereferencing the first read is performed in the constructor

[編集]

#include <iostream>
#include <iterator>
#include <algorithm>
#include <sstream>
int main()
{
    std::istringstream stream("1 2 3 4 5");
    std::copy(
        std::istream_iterator<int>(stream),
        std::istream_iterator<int>(),
        std::ostream_iterator<int>(std::cout, " ")
    );
}

出力:

1 2 3 4 5