std::experimental:: ostream_joiner
|
Определено в заголовочном файле
<experimental/iterator>
|
||
|
template
<
class
DelimT,
|
(TS основ библиотеки 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 member function) |
|
|
(destructor)
(implicitly declared)
|
уничтожает
ostream_joiner
(public member function) |
|
записывает объект в связанную выходную последовательность
(public member function) |
|
|
пустая операция
(public member function) |
|
|
пустая операция
(public member function) |
Функции, не являющиеся членами класса
создаёт объект
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
(шаблон класса) |