std::experimental:: ostream_joiner
|
定义于头文件
<experimental/iterator>
|
||
|
template
<
class
DelimT,
|
(库基础 TS v2) | |
std::experimental::ostream_joiner
是一种单趟
LegacyOutputIterator
,它使用
operator<<
将连续对象写入其构造时指定的
std::basic_ostream
对象,对象之间以分隔符间隔。每次对迭代器(无论是否解引用)进行赋值时执行写入操作。递增
ostream_joiner
是空操作。
在典型实现中,
ostream_joiner
仅包含三个数据成员:指向关联
std::basic_ostream
的指针、分隔符,以及一个
bool
类型成员(用于指示下一次写入是否为序列中的首个元素)。
与
std::ostream_iterator
相比,
ostream_joiner
输出分隔符序列的次数少一次,且无需对要输出的对象类型进行模板化。
目录 |
成员类型
| 成员类型 | 定义 |
char_type
|
CharT
|
traits_type
|
Traits
|
ostream_type
|
std:: basic_ostream < CharT, Traits > |
value_type
|
void |
difference_type
|
void |
pointer
|
void |
reference
|
void |
iterator_category
|
std:: output_iterator_tag |
成员函数
构造新的
ostream_joiner
(公开成员函数) |
|
|
(destructor)
(隐式声明)
|
销毁
ostream_joiner
(公开成员函数) |
|
向关联的输出序列写入对象
(公开成员函数) |
|
|
空操作
(公开成员函数) |
|
|
空操作
(公开成员函数) |
非成员函数
创建
ostream_joiner
对象,从函数参数推导模板类型参数
(函数模板) |
示例
#include <algorithm> #include <experimental/iterator> #include <iostream> #include <iterator> int main() { int i[] = {1, 2, 3, 4, 5}; std::copy(std::begin(i), std::end(i), std::experimental::make_ostream_joiner(std::cout, ", ")); }
输出:
1, 2, 3, 4, 5
参见
|
写入到
std::basic_streambuf
的输出迭代器
(类模板) |
|
|
写入到
std::basic_ostream
的输出迭代器
(类模板) |
|
|
从
std::basic_istream
读取的输入迭代器
(类模板) |