inicio GeNeura cursos

ostream_iterator


ostream_iterator es un iterador de salida conectado a un flujo de salida. Este iterador es todavia más simple que el anterior, ya que sólo ha de ocuparse de implementar el constructor y operator=.


template <class T>
class ostream_iterator 
{
public:
  typedef output_iterator_tag iterator_category;
  typedef void                value_type;
  typedef void                difference_type;
  typedef void                pointer;
  typedef void                reference;

  ostream_iterator(ostream& s) : stream(&s), string(0) {}
  ostream_iterator(ostream& s, const char* c): 
    stream(&s), string(c) {}
  ostream_iterator<T>& operator=(const T& value) 
  { 
    *stream << value;
    if (string) *stream << string;
    return *this;
  }
  ostream_iterator<T>& operator*() { return *this; }
  ostream_iterator<T>& operator++() { return *this; } 
  ostream_iterator<T>& operator++(int) { return *this; } 

protected:
  ostream* stream;
  const char* string;
};

Ejercicios

  1. Imprime cualquier cosa por la salida estandar utilizando un ostream_iterator.