| 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) |