C++ Iterator Library - istream_iterator



Description

It is a special input iterator that read successive elements from an input stream.

Declaration

Following is the declaration for std::istream_iterator.

C++11

template <class T, class charT = char, class traits = char_traits<charT>, 
         class Distance = ptrdiff_t>
   class istream_iterator;

Parameters

  • T − It is an element type for the iterator.

  • charT − It is a first template parameter of the associated basic_istream object.

  • traits − It is a second template parameter of the associated basic_istream.

  • Distance − It is the difference between two iterators.

Return value

none

Exceptions

If x somehow throws while applying the unary operator& to it, this function never throws exceptions.

Time complexity

constant for random-access iterators.

Example

The following example shows the usage of std::insert_iterator.

#include <iostream>
#include <iterator>

int main () {
   double value1, value2;
   std::cout << "Please insert values: ";

   std::istream_iterator<double> eos;              
   std::istream_iterator<double> iit (std::cin);   

   if (iit!=eos) value1=*iit;

   ++iit;
   if (iit!=eos) value2=*iit;

   std::cout << value1 << "*" << value2 << "=" << (value1*value2) << '\n';

   return 0;
}

Let us compile and run the above program, this will produce the following result −

Please insert values: 0*6.95264e-310=0
iterator.htm
Advertisements