std::ostream_iterator
| Определён в заголовке <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 более эффективен, поскольку позволяет избежать накладных расходов на конструирование и уничтожение объекта sentry для каждого символа.
Типы членов
| Тип члена | Определение | ||||
iterator_category
|
std:: output_iterator_tag | ||||
value_type
|
void | ||||
difference_type
|
|
||||
pointer
|
void | ||||
reference
|
void | ||||
char_type
|
CharT
|
||||
traits_type
|
Traits
|
||||
ostream_type
|
std:: basic_ostream < CharT, Traits > |
|
Типы членов
|
(до 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)
|
выходной итератор, который записывает последовательные элементы в выходной поток, разделяя смежные элементы разделителем
(шаблон класса) |