Namespaces
Variants

std:: ostream_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 T,

class CharT = char ,
class Traits = std:: char_traits < CharT > >
class ostream_iterator

: public std:: iterator < std:: output_iterator_tag , void , void , void , void >
(до C++17)
template < class T,

class CharT = char ,
class Traits = std:: char_traits < CharT > >

class ostream_iterator ;
(начиная с C++17)

std::ostream_iterator — это однонаправленный LegacyOutputIterator , который записывает последовательные объекты типа T в объект std::basic_ostream , для которого он был создан, используя operator<< . Необязательная строка-разделитель записывается в выходной поток после каждой операции записи. Операция записи выполняется при присваивании итератору (независимо от того, разыменован он или нет). Инкремент std::ostream_iterator не производит никаких действий.

В типичной реализации единственными членами данных std::ostream_iterator являются указатель на ассоциированный std::basic_ostream и указатель на первый символ в строке-разделителе.

При записи символов std::ostreambuf_iterator является более эффективным, поскольку избегает накладных расходов на создание и уничтожение сторожевого объекта для каждого символа.

Содержание

Типы членов

Тип члена Определение
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
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)

Функции-члены

создает новый ostream_iterator
(публичная функция-член)
уничтожает ostream_iterator
(публичная функция-член)
записывает объект в связанную выходную последовательность
(публичная функция-член)
пустая операция
(публичная функция-член)
пустая операция
(публичная функция-член)

Пример

#include <iostream>
#include <iterator>
#include <numeric>
#include <sstream>
int main()
{
    std::istringstream str("0.11 0.22 0.33 0.44");
    std::partial_sum(std::istream_iterator<double>(str),
                     std::istream_iterator<double>(),
                     std::ostream_iterator<double>(std::cout, ", "));
    std::cout << '\n';
}

Вывод:

0.11, 0.33, 0.66, 1.1,

Смотрите также

выходной итератор, который записывает в std::basic_streambuf
(шаблон класса)
входной итератор, который читает из std::basic_istream
(шаблон класса)
(library fundamentals TS v2)
выходной итератор, который записывает последовательные элементы в выходной поток, разделяя смежные элементы разделителем
(шаблон класса)