std::experimental::ostream_joiner
| Определено в заголовочном файле <experimental/iterator>
|
||
| template< class DelimT, |
(ТС основ библиотеки v2) | |
std::experimental::ostream_joiner однопроходный LegacyOutputIterator, который последовательно записывает объекты в объект std::basic_ostream, для которого он был создан, с использованием operator<<, разделяя их разделителем. Разделитель записывается в выходной поток между каждыми двумя записанными объектами. Операция записи выполняется, когда итератор (разыменованный или нет) присваивается. Инкремент 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 (public функция-элемент) | |
| (деструктор) (объявлено неявно) |
уничтожает ostream_joiner (public функция-элемент) |
| записывает объект в ассоциированную выходную последовательность (public функция-элемент) | |
| ничего не делает (public функция-элемент) | |
| ничего не делает (public функция-элемент) |
[править] Функции, не являющиеся элементами
создаёт объект 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 (шаблон класса) |