Namespaces
Variants

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

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
(1)
istream_iterator ( ) ;
(C++11 이전)
constexpr istream_iterator ( ) ;
(C++11 이후)
constexpr istream_iterator ( std:: default_sentinel_t ) ;
(2) (C++20 이후)
istream_iterator ( istream_type & stream ) ;
(3)
(4)
istream_iterator ( const istream_iterator & other ) ;
(C++11 이전)
istream_iterator ( const istream_iterator & other ) = default ;
(C++11 이후)
1,2) 스트림 끝 반복자를 구성합니다 , 저장된 값을 값 초기화합니다. 이 생성자는 정의 내 초기화식 auto x = T ( ) ; 이 상수 초기화식인 경우 constexpr입니다 (C++11부터) .
3) 반복자를 초기화하고, stream 의 주소를 데이터 멤버에 저장하며, 캐시된 값 데이터 멤버를 초기화하기 위해 입력 스트림에서 첫 번째 읽기를 수행합니다.
4) other 의 복사본을 생성합니다. 만약 std:: is_trivially_copy_constructible < T > :: value true 라면, 이 복사 생성자는 trivial 복사 생성자입니다. (C++11 이후)

매개변수

stream - istream_iterator 를 초기화할 스트림
other - 동일한 타입의 다른 istream_iterator

예제

#include <algorithm>
#include <iostream>
#include <iterator>
#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

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 1280 C++98 오버로드 (3) stream 을 직접 저장함 대신 해당 주소를 저장함
P0738R2 C++98 첫 번째 읽기가 첫 번째 역참조까지 지연될 수 있음 항상 생성자에서 수행됨