C++ Language/Std/Stl/Iterators/StreamIterators
Like insert-iterators and reverse-iterators, using a "stream-iterator" changes the effect of STL's existing algorithms.
In this case, the iterator's =
operator gets re-defined to have the effect of std::cout << source << " ";
.
Additional information about stream-iterators (includes interactive examples)