istream_iterator (Clase)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Describe un objeto iterador de entrada. Extrae objetos de clase Type de una secuencia de entrada que tiene acceso a través de un objeto que almacena, de tipo pointer a basic_istream < CharType, Traits>.

template <class Type, class CharType = char, class Traits = char_traits<CharType>, class Distance = ptrdiff_t,>  
class istream_iterator
 : public iterator<
    input_iterator_tag, Type, Distance,
    const Type *,
    const Type&>;

Parámetros

Type
Tipo de objeto que se extraerá del flujo de entrada.

CharType
Tipo que representa el tipo de caracteres para istream_iterator. Este argumento es opcional y el valor predeterminado es char.

Traits
Tipo que representa el tipo de caracteres para istream_iterator. Este argumento es opcional y el valor predeterminado es char_traits < CharType>.

Distance
Tipo entero con signo que representa el tipo de diferencia para istream_iterator. Este argumento es opcional y el valor predeterminado es ptrdiff_t.

Después de crear o incrementar un objeto de clase istream_iterator con un puntero almacenado no null, el objeto intenta extraer y almacenar un objeto de tipo Type del flujo de entrada asociado. Si se produce un error en la extracción, el objeto reemplaza el puntero almacenado con un puntero NULL, creando de esta forma un indicador de fin de secuencia.

Constructores

istream_iteratorConstruye un iterador de fin de secuencia como istream_iterator predeterminado, o bien un istream_iterator inicializado en el tipo de flujo del iterador del que lee.

Definiciones de tipo

char_typeTipo que proporciona el tipo de los caracteres de istream_iterator.
istream_typeTipo que proporciona el tipo de flujo de istream_iterator.
traits_typeTipo que proporciona el tipo de rasgos de los caracteres de istream_iterator.

Operadores

operador *El operador de desreferencia devuelve el objeto almacenado de tipo Type señalado por istream_iterator.
operador->Devuelve el valor de un miembro, si existe.
operator ++Extrae un objeto incrementado del flujo de entrada o copia el objeto antes de aumentarlo y devuelve la copia.

Encabezado:<>>

Espacio de nombres: std

Tipo que proporciona el tipo de los caracteres de istream_iterator.

typedef CharType char_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla Chartype.

Ejemplo

// istream_iterator_char_type.cpp  
// compile with: /EHsc  
#include <iterator>  
#include <vector>  
#include <iostream>  
  
int main( )  
{  
   using namespace std;  
  
   typedef istream_iterator<int>::char_type CHT1;  
   typedef istream_iterator<int>::traits_type CHTR1;  
  
   // Standard iterator interface for reading  
   // elements from the input stream:  
   cout << "Enter integers separated by spaces & then\n"  
        << " any character ( try example: '2 4 f' ): ";  
  
   // istream_iterator for reading int stream  
   istream_iterator<int, CHT1, CHTR1> intRead ( cin );  
  
   // End-of-stream iterator  
   istream_iterator<int, CHT1, CHTR1> EOFintRead;  
  
   while ( intRead != EOFintRead )  
   {  
      cout << "Reading:  " << *intRead << endl;  
      ++intRead;  
   }  
   cout << endl;  
}  

Construye un iterador de fin de secuencia como istream_iterator predeterminado, o bien un istream_iterator inicializado en el tipo de flujo del iterador del que lee.

istream_iterator();

istream_iterator(istream_type& _Istr);

Parámetros

_Istr
La secuencia de entrada que leerse en uso para inicializar el istream_iterator.

Comentarios

El primer constructor inicializa el puntero de la secuencia de entrada con un puntero null y crea un iterador de fin de la secuencia. El segundo constructor inicializa el puntero de la secuencia de entrada con aspecto _Istr, a continuación, intenta extraer y almacenar un objeto de tipo tipo.

El iterador de fin de secuencia se puede usar para probar si una istream_iterator ha llegado al final de una secuencia.

Ejemplo

// istream_iterator_istream_iterator.cpp  
// compile with: /EHsc  
#include <iterator>  
#include <vector>  
#include <algorithm>  
#include <iostream>  
  
int main( )  
{  
   using namespace std;  
  
   // Used in conjunction with copy algorithm  
   // to put elements into a vector read from cin  
   vector<int> vec ( 4 );  
   vector <int>::iterator Iter;  
  
   cout << "Enter 4 integers separated by spaces & then\n"  
        << " a character ( try example: '2 4 6 8 a' ): ";  
   istream_iterator<int> intvecRead ( cin );  
  
   // Default constructor will test equal to end of stream  
   // for delimiting source range of vecor  
   copy ( intvecRead , istream_iterator<int>( ) , vec.begin ( ) );  
   cin.clear ( );  
  
   cout << "vec = ";  
   for ( Iter = vec.begin( ) ; Iter != vec.end( ) ; Iter++ )  
      cout << *Iter << " "; cout << endl;  
}  

Tipo que proporciona el tipo de flujo de istream_iterator.

typedef basic_istream<CharType, Traits> istream_type;

Comentarios

El tipo es un sinónimo de basic_istream < CharType, rasgos>.

Ejemplo

Consulte istream_iterator para obtener un ejemplo de cómo declarar y utilizar istream_type.

El operador de desreferenciación devuelve el objeto almacenado de tipo tipo abordando el istream_iterator.

const Type& operator*() const;

Valor devuelto

El objeto almacenado de tipo tipo.

Ejemplo

// istream_iterator_operator.cpp  
// compile with: /EHsc  
#include <iterator>  
#include <vector>  
#include <algorithm>  
#include <iostream>  
  
int main( )  
{  
   using namespace std;  
  
   cout << "Enter integers separated by spaces & then\n"  
        << " a character ( try example: '2 4 6 8 a' ): ";  
  
   // istream_iterator from stream cin  
   istream_iterator<int> intRead ( cin );  
  
   // End-of-stream iterator  
   istream_iterator<int> EOFintRead;  
  
   while ( intRead != EOFintRead )  
   {  
      cout << "Reading:  " << *intRead << endl;  
      ++intRead;  
   }  
   cout << endl;  
}  

Devuelve el valor de un miembro, si existe.

const Type* operator->() const;

Valor devuelto

El valor de un miembro, si existe.

Comentarios

i -> is equivalent to (* i). m

El operador devuelve ** & * *esto**.

Ejemplo

// istream_iterator_operator_vm.cpp  
// compile with: /EHsc  
#include <iterator>  
#include <iostream>  
#include <complex>  
  
using namespace std;  
  
int main( )  
{  
   cout << "Enter complex numbers separated by spaces & then\n"  
        << " a character pair ( try example: '(1,2) (3,4) (a,b)' ): ";  
  
   // istream_iterator from stream cin  
   istream_iterator< complex<double> > intRead ( cin );  
  
   // End-of-stream iterator  
   istream_iterator<complex<double> > EOFintRead;  
  
   while ( intRead != EOFintRead )  
   {  
      cout << "Reading the real part: " << intRead ->real( ) << endl;  
      cout << "Reading the imaginary part: " << intRead ->imag( ) << endl;  
      ++intRead;  
   }  
   cout << endl;  
}  

Extrae un objeto incrementado del flujo de entrada o copia el objeto antes de aumentarlo y devuelve la copia.

istream_iterator<Type, CharType, Traits, Distance>& operator++();

istream_iterator<Type, CharType, Traits, Distance> operator++(int);

Valor devuelto

El primer operador de miembro devuelve una referencia al objeto de tipo incrementado tipo extraídos de la secuencia de entrada y la segunda función de miembro devuelve una copia del objeto.

Ejemplo

// istream_iterator_operator_incr.cpp  
// compile with: /EHsc  
#include <iterator>  
#include <vector>  
#include <algorithm>  
#include <iostream>  
  
int main( )  
{  
   using namespace std;  
  
   cout << "Enter integers separated by spaces & then\n"  
        << " a character ( try example: '2 4 6 8 a' ): ";  
  
   // istream_iterator from stream cin  
   istream_iterator<int> intRead ( cin );  
  
   // End-of-stream iterator  
   istream_iterator<int> EOFintRead;  
  
   while ( intRead != EOFintRead )  
   {  
      cout << "Reading:  " << *intRead << endl;  
      ++intRead;  
   }  
   cout << endl;  
}  

Tipo que proporciona el tipo de rasgos de los caracteres de istream_iterator.

typedef Traits traits_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla rasgos.

Ejemplo

// istream_iterator_traits_type.cpp  
// compile with: /EHsc  
#include <iterator>  
#include <iostream>  
  
int main( )  
{  
   using namespace std;  
  
   typedef istream_iterator<int>::char_type CHT1;  
   typedef istream_iterator<int>::traits_type CHTR1;  
  
   // Standard iterator interface for reading  
   // elements from the input stream:  
   cout << "Enter integers separated by spaces & then\n"  
        << " any character ( try example: '10 20 a' ): ";  
  
   // istream_iterator for reading int stream  
   istream_iterator<int, CHT1, CHTR1> intRead ( cin );  
  
   // End-of-stream iterator  
   istream_iterator<int, CHT1, CHTR1> EOFintRead;  
  
   while ( intRead != EOFintRead )  
   {  
      cout << "Reading:  " << *intRead << endl;  
      ++intRead;  
   }  
   cout << endl;  
}  

input_iterator_tag (struct)
Iterator (struct)
<>>
Seguridad para subprocesos en la biblioteca estándar de C++
Biblioteca de plantillas estándar

Mostrar: