Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Defined in header <iterator> | ||
template<class T, class CharT=char, | (until C++17) | |
template<class T, class CharT=char, | (since C++17) | |
std::ostream_iterator
is a single-passLegacyOutputIterator that writes successive objects of typeT
into thestd::basic_ostream object for which it was constructed, usingoperator<<
. Optional delimiter string is written to the output stream after every write operation. The write operation is performed when the iterator (whether dereferenced or not) is assigned to. Incrementing thestd::ostream_iterator
is a no-op.
In a typical implementation, the only data members ofstd::ostream_iterator
are a pointer to the associatedstd::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.
Contents |
Member type | Definition | ||||
iterator_category | std::output_iterator_tag | ||||
value_type | void | ||||
difference_type |
| ||||
pointer | void | ||||
reference | void | ||||
char_type | CharT | ||||
traits_type | Traits | ||||
ostream_type | std::basic_ostream<CharT, Traits> |
Member types | (until C++17) |
constructs a new ostream_iterator (public member function)[edit] | |
destructs anostream_iterator (public member function)[edit] | |
writes an object to the associated output sequence (public member function)[edit] | |
no-op (public member function)[edit] | |
no-op (public member function)[edit] |
#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,
output iterator that writes tostd::basic_streambuf (class template)[edit] | |
input iterator that reads fromstd::basic_istream (class template)[edit] | |
(library fundamentals TS v2) | an output iterator that writes successive elements into an output stream, separating adjacent elements with a delimiter (class template) |