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 ( ) ;
(bis C++11)
constexpr istream_iterator ( ) ;
(seit C++11)
constexpr istream_iterator ( std:: default_sentinel_t ) ;
(2) (seit C++20)
istream_iterator ( istream_type & stream ) ;
(3)
(4)
istream_iterator ( const istream_iterator & other ) ;
(bis C++11)
istream_iterator ( const istream_iterator & other ) = default ;
(seit C++11)
1,2) Konstruiert den End-of-Stream-Iterator , wertinitialisiert den gespeicherten Wert. Dieser Konstruktor ist constexpr, wenn der Initialisierer in der Definition auto x = T ( ) ; ein konstanter Initialisierer ist (seit C++11) .
3) Initialisiert den Iterator, speichert die Adresse von stream in einem Datenmitglied und führt das erste Lesen vom Eingabestream durch, um den zwischengespeicherten Wert-Datenmitglied zu initialisieren.
4) Konstruiert eine Kopie von other . Wenn std:: is_trivially_copy_constructible < T > :: value gleich true ist, dann ist dieser Kopierkonstruktor ein trivialer Kopierkonstruktor. (seit C++11)

Parameter

stream - Stream zum Initialisieren des istream_iterator
other - ein weiterer istream_iterator desselben Typs

Beispiel

#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, " ")
    );
}

Ausgabe:

1 2 3 4 5

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 1280 C++98 Überladung (3) speicherte stream direkt speichert stattdessen seine Adresse
P0738R2 C++98 das erste Lesen könnte auf die erste Dereferenzierung verschoben werden immer im Konstruktor durchgeführt