Allgemeines
<iostream>::std::cout und <iostream>::std::cerr sind beides Ausgabeströme vom Typ <ostream>::std::ostream.
Sie werden auch Ströme, Stromobjekte oder Ausgabeströme genannt.
::std::cout << "abc\n";
::std::cerr << "abc\n";
Es handelt sich um Exemplare, die auch Elementfunktionen haben.
cout.precision();
cout.precision( 12 );
cout.put( 'a' );
cout.write( "abc\n", 4 );
ostream_iterator<int>(cout);
ostream_iterator<char>(cout);
ostream_iterator<::std::string>(cout);
ostream_iterator<string>(cout," ");
ostream_iterator<string>(cout,"\n");
copy( s.begin(), s.end(), outIter );
Wandlung nach bool
Wandlung ist "expliziter Operator bool".
if( s ) /* condition, implizite Wandlung ok */
b = s; /* Zuweisung an bool: implizite Wandlung nicht ok */
if( b = s ) /* Zuweisung an bool: implizite Wandlung nicht ok */
Wörter eines Texts ermitteln
Im folgenden kopiert »::std::unique_copy« nur das erste Vorkommen einer Folge gleicher Zeichenfolgen.
main.cpp
#include <algorithm>
#include <initializer_list>
#include <iostream>
#include <iterator>
#include <ostream>
#include <string>
#include <vector>int main()
{ ::std::vector< ::std::string > words{ "alpha", "beta", "alpha", "gamma" };::std::copy
( words.begin(), words.end(),
::std::ostream_iterator< ::std::string >( ::std::cout, ", " ) );
::std::cout << '\n';::std::sort( words.begin(), words.end() );
::std::copy
( words.begin(), words.end(),
::std::ostream_iterator< ::std::string >( ::std::cout, ", " ) );
::std::cout << '\n';::std::unique_copy
( words.begin(), words.end(),
::std::ostream_iterator< ::std::string >( ::std::cout, ", " ) );
::std::cout << '\n'; }transcript
alpha, beta, alpha, gamma,
alpha, alpha, beta, gamma,
alpha, beta, gamma,