C++ Programming Code Examples
Learn C++ Language
Iterator Library ostream_iterator in C++ Programming Language
Iterator Library ostream_iterator in C++
Ostream iterators are output iterators that write sequentially to an output stream (such as cout). They are constructed from a basic_ostream object, to which they become associated, so that whenever an assignment operator (=) is used on the ostream_iterator (dereferenced or not) it inserts a new element into the stream.
Optionally, a delimiter can be specified on construction. This delimiter is written to the stream after each element is inserted.
Syntax for Iterator ostream_iterator in C++
#include <iterator>
template <class T, class charT=char, class traits=char_traits<charT> >
class ostream_iterator;
T
Element type for the iterator: The type of elements inserted into the stream
charT
First template parameter of the associated basic_ostream object: The type of elements the stream handles (char for ostream).
traits
Second template parameter of the associated basic_ostream: Character traits for the elements the stream handles.
The default template arguments correspond to an instantiation that uses an ostream object as associated stream.
Member types
Member types & definition in istream_iterator
ostream_type: basic_ostream<charT,traits> --- Type of the associated output stream
iterator_category: output_iterator_tag --- Input iterator
value_type: void
char_type: charT --- Type of the characters handled by the associated stream
traits_type: traits --- Character traits for associated stream
difference_type: void
pointer: void
reference: void
Member functions
• (constructor) Construct ostream iterator (public member function )
• operator* Dereference iterator (public member function )
• operator++ Increment iterator (public member function )
• operator= Assignment operator (public member function )
/* C++ ostream_iterator is a special output iterator that write sequentially to an output stream. */
/* ostream_iterator class template - Output iterator to write items to an ostream */
/* C++ code example to illustrate read a bunch of strings from a file sort them lexicographically and print them to output stream */
#include <algorithm>
#include <fstream>
#include <iostream>
#include <iterator>
#include <string>
#include <vector>
using namespace std;
int main()
{
// Define a vector to store the strings received from input
vector<string> strings_v;
// Define the filestream object used to read data from file
ifstream fin("input_file.txt");
// Get input stream and end of stream iterators
istream_iterator<string> fin_it(fin);
istream_iterator<string> eos;
// Get output stream iterators
ostream_iterator<string> cout_it(cout, " ");
// Copy elements from input to vector using copy function
copy(fin_it, eos, back_inserter(strings_v));
// Sort the vector
sort(strings_v.begin(), strings_v.end());
// Copy elements from vector to output
copy(strings_v.begin(), strings_v.end(), cout_it);
return 0;
}
The "queue? size?" function would return the length of the line, and the ?empty? function would return true only if there was nothing in the line. "Simple Queue" C++ Example, array
As a function can be created to return a value of a primitive type, a function can be defined to return a reference to primitive type. When 'declaring such a function', you must indicate
In this C++ example, we have "two functions" one gets the values from user, assign them to structure members and returns the structure and the other function takes that structure as