home | help
std::ostream_iterator(3)       C++ Standard Libary	std::ostream_iterator(3)

NAME
     std::ostream_iterator - std::ostream_iterator

Synopsis
	Defined in header <iterator>
	template< class T,

		  class CharT = char,
		  class       Traits	   =	  std::char_traits<CharT>      >
     (until C++17)
	class ostream_iterator

	    : public std::iterator<std::output_iterator_tag, void, void,
	void, void>
	template< class T,

		  class 	      CharT		  =		   char,
     (since C++17)
		  class Traits = std::char_traits<CharT> >

	class ostream_iterator;

	std::ostream_iterator  is a single-pass LegacyOutputIterator that writes
     successive
	objects of type T into the std::basic_ostream object for  which  it  was
     constructed,
	using  operator<<.  Optional  delimiter  string is written to the output
     stream after
	every write operation. The write operation is performed when the  itera-
     tor (whether
	dereferenced or not) is assigned to. Incrementing the std::ostream_iter-
     ator is a
	no-op.

	In a typical implementation, the only data members of std::ostream_iter-
     ator are a
	pointer  to the associated std::basic_ostream and a pointer to the first
     character in
	the delimiter string.

	When writing characters,  std::ostreambuf_iterator  is	more  efficient,
     since it avoids
	the  overhead of constructing and destructing the sentry object once per
     character.

Member types
	Member type	  Definition
	iterator_category std::output_iterator_tag
	value_type	  void
	difference_type   void		 (until C++20)
			  std::ptrdiff_t (since C++20)
	pointer 	  void
	reference	  void
	char_type	  CharT
	traits_type	  Traits
	ostream_type	  std::basic_ostream<CharT, Traits>

	Member types iterator_category, value_type, difference_type, pointer
	and  reference	are  required  to  be  obtained   by   inheriting   from
     (until C++17)
	std::iterator<std::output_iterator_tag, void, void, void, void>.

Member functions
	constructor	constructs a new ostream_iterator
			(public member function)
	destructor	destructs an ostream_iterator
			(public member function)
	operator=	writes an object to the associated output sequence
			(public member function)
	operator*	no-op
			(public member function)
	operator++	no-op
	operator++(int) (public member function)

Example
     // Run this code

      #include <iostream>
      #include <iterator>
      #include <numeric>
      #include <sstream>

      int main()
      {
	  std::istringstream str("0.11 0.22 0.33 0.44");

	  std::partial_sum(std::istream_iterator<double>(str),
			   std::istream_iterator<double>(),
			   std::ostream_iterator<double>(std::cout, ", "));
	  std::cout << '\n';
      }

Output:
      0.11, 0.33, 0.66, 1.1,

See also
					  output iterator that writes to
	ostreambuf_iterator		  std::basic_streambuf
					  (class template)
	istream_iterator		    input   iterator   that  reads  from
     std::basic_istream
					  (class template)
					  an output iterator that writes succes-
     sive elements
	std::experimental::ostream_joiner into an output stream, separating  ad-
     jacent
	(library fundamentals TS v2)	  elements with a delimiter
					  (class template)

http://cppreference.com 	   2024.06.10		std::ostream_iterator(3)

home | help