ostream_iterator( ostream_type& stream, const CharT* delim ); | (1) | |
ostream_iterator( ostream_type& stream ); | (2) |
stream
as the associated stream and delim
as the delimiter.stream
as the associated stream and a null pointer as the delimiter.stream | - | the output stream to be accessed by this iterator |
delim | - | the null-terminated character string to be inserted into the stream after each output |
#include <iostream> #include <iterator> #include <algorithm> #include <numeric> int main() { std::ostream_iterator<char> oo {std::cout}; std::ostream_iterator<int> i1 {std::cout, ", "}; std::fill_n(i1, 5, -1); *oo++ = '\n'; std::ostream_iterator<double> i2 {std::cout, "; "}; *i2++ = 3.14; *i2++ = 2.71; *oo++ = '\n'; std::common_iterator<std::counted_iterator<std::ostream_iterator<float>>, std::default_sentinel_t> first { std::counted_iterator{std::ostream_iterator<float>{std::cout," ~ "}, 5} }, last { std::default_sentinel }; std::iota(first, last, 2.2); *oo++ = '\n'; }
Output:
-1, -1, -1, -1, -1, 3.14; 2.71; 2.2 ~ 3.2 ~ 4.2 ~ 5.2 ~ 6.2 ~
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
P2325R3 | C++20 | default constructor was provided as C++20 iterators must be default_initializable | removed along with the requirement |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/iterator/ostream_iterator/ostream_iterator