Namespaces
Variants

std:: ostreambuf_iterator

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
定义于头文件 <iterator>
template < class CharT, class Traits = std:: char_traits < CharT > >

class ostreambuf_iterator

: public std:: iterator < std:: output_iterator_tag , void , void , void , void >
(C++17 前)
template < class CharT, class Traits = std:: char_traits < CharT > >
class ostreambuf_iterator ;
(C++17 起)

std::ostreambuf_iterator 是一种单次传递的 LegacyOutputIterator ,它将连续的字符写入到其构造时指定的 std::basic_streambuf 对象中。实际的写入操作在迭代器(无论是否被解引用)被赋值时执行。递增 std::ostreambuf_iterator 是无操作。

在典型实现中, std::ostreambuf_iterator 的唯一数据成员是指向关联 std::basic_streambuf 的指针,以及指示是否达到文件结束条件的布尔标志。

目录

成员类型

成员类型 定义
iterator_category std:: output_iterator_tag
value_type void
difference_type

void

(C++20 前)

std::ptrdiff_t

(C++20 起)
pointer void
reference void
char_type CharT
traits_type Traits
streambuf_type std:: basic_streambuf < CharT, Traits >
ostream_type std:: basic_ostream < CharT, Traits >

成员类型 iterator_category , value_type , difference_type , pointer reference 需要通过继承自 std:: iterator < std:: output_iterator_tag , void , void , void , void > 来获取。

(C++17 前)

成员函数

构造新的 ostreambuf_iterator
(公开成员函数)
(destructor)
(implicitly declared)
销毁 ostreambuf_iterator
(公开成员函数)
写入字符到关联的输出序列
(公开成员函数)
空操作
(公开成员函数)
空操作
(公开成员函数)
检查输出是否失败
(公开成员函数)

示例

#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
int main()
{
    std::string s = "This is an example\n";
    std::copy(s.begin(), s.end(), std::ostreambuf_iterator<char>(std::cout));
}

输出:

This is an example

参见

std::basic_streambuf 读取的输入迭代器
(类模板)
std::basic_ostream 写入的输出迭代器
(类模板)