std::ostream_iterator<T,CharT,Traits>::ostream_iterator
来自cppreference.com
< cpp | iterator | ostream iterator
ostream_iterator( ostream_type& stream, const CharT* delim ); |
(1) | |
ostream_iterator( ostream_type& stream ); |
(2) | |
1) 以
stream
为关联流并以 delim
为分隔符构造迭代器。2) 以
stream
为关联流并以空指针为分隔符构造迭代器。参数
stream | - | 此迭代器所访问的输出流 |
delim | - | 在每次输出后插入流的空终止字符串 |
示例
运行此代码
#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'; }
输出:
-1, -1, -1, -1, -1, 3.14; 2.71; 2.2 ~ 3.2 ~ 4.2 ~ 5.2 ~ 6.2 ~
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
DR | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
P2325R3 | C++20 | 由于 C++20 迭代器必须为 default_initializable 提供了默认构造函数
|
与该要求一同移除 |