Spec-Zone.ru › C++

std::ostreambuf_iterator

Определено в заголовке <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
(публичная функция-член)
(деструктор)
(неявный)
уничтожает ostreambuf_iterator
(публичная функция-член)
operator=
записывает символ в связанную последовательность вывода
(публичная функция-член)
operator*
бездействующая операция
(публичная функция-член)
operator++operator++(int)
бездействующая операция
(публичная функция-член)
failed
проверяет, произошла ли ошибка вывода
(публичная функция-член)

Пример

#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

См. также

istreambuf_iterator
входной итератор, считывающий из std::basic_streambuf
(шаблон класса)
ostream_iterator
итератор вывода, записывающий в std::basic_ostream
(шаблон класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/iterator/ostreambuf_iterator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API