Пространства имён
Варианты
Действия

std::ostream_iterator

Материал из cppreference.com
< cpp‎ | iterator

 
 
Библиотека итераторов
Концепты итераторов
Примитивы итераторов
Концепты алгоритмов и утилиты
Косвенно вызываемые концепты
Общие требования к алгоритмам
Утилиты
(C++20)
Адаптеры итераторов
Потоковые итераторы
ostream_iterator
Точки настройки итераторов
Операции итераторов
(C++11)
(C++11)
Доступ к диапазону
(C++11)(C++14)
(C++11)(C++14)
(C++17)(C++20)
(C++14)(C++14)
(C++14)(C++14)
(C++17)
(C++17)
 
std::ostream_iterator
Член функций
Оригинал:
Member functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
Определено в заголовочном файле <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>
std::ostream_iterator является однопроходной итератор вывода, который записывает последовательные объекты типа T в std::basic_ostream объекта, для которого она была построена, используя operator<<. Дополнительный разделитель строки записывается в выходной поток после каждой операции записи. Операция записи выполняется, когда итератор (будь разыменован или нет) назначен. Приращение std::ostream_iterator является не-оп.
Оригинал:
std::ostream_iterator is a single-pass output iterator that writes successive objects of type T into the std::basic_ostream object for which it was constructed, using operator<<. Optional delimiter string is written to the output stream after every write operation. The write operation is performed when the iterator (whether dereferenced or not) is assigned to. Incrementing the std::ostream_iterator is a no-op.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
В типичной реализации, только члены данных std::ostream_iterator являются указатель на связанный std::basic_ostream и указатель на первый символ в строке разделителя.
Оригинал:
In a typical implementation, the only data members of std::ostream_iterator are a pointer to the associated std::basic_ostream and a pointer to the first character in the delimiter string.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
При написании символов, std::ostreambuf_iterator является более эффективным, так как оно позволяет избежать накладных расходов на строительство и разрушать часовой объект один раз в характере.
Оригинал:
When writing characters, std::ostreambuf_iterator is more efficient, since it avoids the overhead of constructing and destructing the sentry object once per character.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править] Типы-члены

Тип члена Определение
char_type CharT
traits_type Traits
ostream_type std::basic_ostream<CharT, Traits>

[править] Функции-члены

создает новый ostream_iterator
Оригинал:
constructs a new ostream_iterator
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public функция-элемент)
разрушает ostream_iterator
Оригинал:
destructs an ostream_iterator
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public функция-элемент)
пишет объекта к соответствующей выходной последовательности
Оригинал:
writes a object to the associated output sequence
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public функция-элемент)
no-op
(public функция-элемент)
no-op
(public функция-элемент)

[править] Типы элементы

Тип элемент Определение
iterator_category std::output_iterator_tag
value_type void
difference_type

void

(до C++20)

std::ptrdiff_t

(начиная с C++20)
pointer void
reference void

Типы элемены iterator_category, value_type, difference_type, pointer и reference должны быть получены путём наследования от std::iterator<std::output_iterator_tag, void, void, void, void>.

(до C++17)

[править] Пример

#include <iostream>
#include <sstream>
#include <iterator>
#include <algorithm>
int main()
{
    std::istringstream str("0.1 0.2 0.3 0.4");
    std::partial_sum( std::istream_iterator<double>(str),
                      std::istream_iterator<double>(),
                      std::ostream_iterator<double>(std::cout, " "));
}

Вывод:

0.1 0.3 0.6 1

[править] См. также

итератор вывода, записывающий в std::basic_streambuf
(шаблон класса) [править]
итератор ввода, читающий из std::basic_istream
(шаблон класса) [править]