Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Шаблон класса описывает объект выходного итератора, который записывает последовательные символьные элементы в выходной поток с извлечением . Они отличаются от класса в наличии символов вместо универсального типа в типе объекта, вставленного в выходной поток.
Синтаксис
template <class CharType = char, class Traits = char_traits <CharType>>
Параметры
CharType
Тип, представляющий тип символа для ostreambuf_iterator. Этот аргумент является необязательным, и значением по умолчанию является .
Traits
Тип, представляющий тип символа для ostreambuf_iterator. Этот аргумент является необязательным, и значением по умолчанию является .
Замечания
Класс ostreambuf_iterator должен удовлетворять требованиям для итератора вывода. Алгоритмы можно записывать непосредственно в потоки вывода с помощью . Данный класс предоставляет итератор потока низкого уровня, обеспечивающий доступ к необработанному (неотформатированному) потоку ввода-вывода в форме символов, а также возможность обхода буферизации и преобразования символов, связанных с итераторами потоков высокого уровня.
Конструкторы
| Конструктор | Description |
|---|---|
ostreambuf_iterator |
Создает итератор , инициализированный для записи символов в поток вывода. |
Определения типов
| Введите имя | Description |
|---|---|
char_type |
Тип, обеспечивающий тип символа для . |
ostream_type |
Тип, обеспечивающий тип потока для . |
streambuf_type |
Тип, обеспечивающий тип потока для . |
traits_type |
Тип, обеспечивающий тип признаков символа для . |
Функции элементов
| Функция-член | Description |
|---|---|
failed |
Проверяет наличие ошибок вставки в буфер потока вывода. |
Операторы
| Operator | Description |
|---|---|
operator* |
Оператор dereferencing, используемый для реализации выражения выходного итератора. |
operator++ |
Нефункциональный оператор инкремента, возвращающий , обращающийся к тому же объекту, к которому он обращался до вызова операции. |
operator= |
Данный оператор вставляет символ в соответствующий буфер потока. |
Требования
Заголовок:
Пространство имен:
ostreambuf_iterator::char_type
Тип, обеспечивающий тип символа для .
typedef CharType char_type;
Замечания
Этот тип является синонимом для параметра шаблона .
Пример
// ostreambuf_iterator_char_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
typedef ostreambuf_iterator<char>::char_type CHT1;
typedef ostreambuf_iterator<char>::traits_type CHTR1;
// ostreambuf_iterator for stream cout
// with new line delimiter:
ostreambuf_iterator< CHT1, CHTR1> charOutBuf ( cout );
// Standard iterator interface for writing
// elements to the output streambuf:
cout << "The characters written to the output stream\n"
<< " by charOutBuf are: ";
*charOutBuf = 'O';
charOutBuf++;
*charOutBuf = 'U';
charOutBuf++;
*charOutBuf = 'T';
charOutBuf++;
cout << "." << endl;
}
OUT.
ostreambuf_iterator::failed
Проверяет наличие ошибок вставки в буфер потока вывода.
bool failed() const throw();
Возвращаемое значение
Значение , если вставка в буфер выходного потока не выполнена ранее; в противном случае .
Замечания
Функция-член возвращается в случае неудачной попытки вставить символ в буфер выходного потока.
Пример
// ostreambuf_iterator_failed.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostreambuf_iterator for stream cout
ostreambuf_iterator<char> charOut ( cout );
*charOut = 'a';
charOut ++;
*charOut = 'b';
charOut ++;
*charOut = 'c';
cout << " are characters output individually." << endl;
bool b1 = charOut.failed ( );
if (b1)
cout << "At least one insertion failed." << endl;
else
cout << "No insertions failed." << endl;
}
abc are characters output individually.
No insertions failed.
ostreambuf_iterator::operator*
Нефункциональный оператор dereferencing, используемый для реализации выражения выходного итератора.
ostreambuf_iterator<CharType, Traits>& operator*();
Возвращаемое значение
Объект-итератор ostreambuf.
Замечания
Этот оператор работает только в выражении выходного итератора для вывода символов в буфер потоковой передачи. Применяется к объекту , возвращает итератор; возвращается .
Пример
// ostreambuf_iterator_op_deref.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main()
{
using namespace std;
// ostreambuf_iterator for stream cout
// with new line delimiter
ostreambuf_iterator<char> charOutBuf ( cout );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*charOutBuf = 'O';
charOutBuf++; // no effect on iterator position
*charOutBuf = 'U';
*charOutBuf = 'T';
}
Elements written to output stream:
OUT
ostreambuf_iterator::operator++
Нефункциональный оператор добавочного инкремента, который возвращает тот же символ, который он обратился перед вызовом операции.
ostreambuf_iterator<CharType, Traits>& operator++();
ostreambuf_iterator<CharType, Traits>& operator++(int);
Возвращаемое значение
Ссылка на символ, первоначально адресованный или определяемый реализацией объект, в который можно преобразовать.
Замечания
Оператор используется для реализации выражения выходного итератора.
Пример
// ostreambuf_iterator_op_incr.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostreambuf_iterator for stream cout
// with new line delimiter
ostreambuf_iterator<char> charOutBuf ( cout );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*charOutBuf = 'O';
charOutBuf++; // No effect on iterator position
*charOutBuf = 'U';
*charOutBuf = 'T';
}
Elements written to output stream:
OUT
ostreambuf_iterator::operator=
Данный оператор вставляет символ в соответствующий буфер потока.
ostreambuf_iterator<CharType, Traits>& operator=(CharType _Char);
Параметры
_Char
Символ для вставки в буфер потока.
Возвращаемое значение
Ссылка на символ, вставленный в буфер потока.
Замечания
Оператор назначения, используемый для реализации выражения выходного итератора для записи в выходной поток.
Пример
// ostreambuf_iterator_op_assign.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
// ostreambuf_iterator for stream cout
// with new line delimiter
ostreambuf_iterator<char> charOutBuf ( cout );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*charOutBuf = 'O';
charOutBuf++; // No effect on iterator position
*charOutBuf = 'U';
*charOutBuf = 'T';
}
Elements written to output stream:
OUT
ostreambuf_iterator::ostreambuf_iterator
Создает итератор , инициализированный для записи символов в поток вывода.
ostreambuf_iterator(streambuf_type* strbuf) throw();
ostreambuf_iterator(ostream_type& Ostr) throw();
Параметры
strbuf
Выходной объект streambuf, используемый для инициализации указателя буфера потока вывода.
Ostr
Выходной объект stream, используемый для инициализации указателя буфера потока вывода.
Замечания
Первый конструктор инициализирует указатель выходного буфера потока с помощью .
Второй конструктор инициализирует указатель выходного потока-буфера с помощью *. Сохраненный указатель не должен быть пустым указателем (NULL).
Пример
// ostreambuf_iteratorOstreambuf_iterator.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main()
{
using namespace std;
// ostreambuf_iterator for stream cout
ostreambuf_iterator<char> charOut ( cout );
*charOut = 'O';
charOut ++;
*charOut = 'U';
charOut ++;
*charOut = 'T';
cout << " are characters output individually." << endl;
ostreambuf_iterator<char> strOut ( cout );
string str = "These characters are being written to the output stream.\n ";
copy ( str.begin ( ), str. end ( ), strOut );
}
OUT are characters output individually.
These characters are being written to the output stream.
ostreambuf_iterator::ostream_type
Тип, обеспечивающий тип потока для .
typedef basicOstream<CharType, Traits> ostream_type;
Замечания
Тип является синонимом для
Пример
Пример объявления и использования .
ostreambuf_iterator::streambuf_type
Тип, обеспечивающий тип потока для .
typedef basic_streambuf<CharType, Traits> streambuf_type;
Замечания
Тип является синонимом , класс потока для буферов ввода-вывода, который становится , когда используется для типа символов.
Пример
Пример объявления и использования .
ostreambuf_iterator::traits_type
Тип, обеспечивающий тип признаков символа для .
typedef Traits traits_type;
Замечания
Этот тип является синонимом для параметра шаблона .
Пример
// ostreambuf_iterator_traits_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>
int main( )
{
using namespace std;
typedef ostreambuf_iterator<char>::char_type CHT1;
typedef ostreambuf_iterator<char>::traits_type CHTR1;
// ostreambuf_iterator for stream cout
// with new line delimiter:
ostreambuf_iterator< CHT1, CHTR1> charOutBuf ( cout );
// Standard iterator interface for writing
// elements to the output streambuf:
cout << "The characters written to the output stream\n"
<< " by charOutBuf are: ";
*charOutBuf = 'O';
charOutBuf++;
*charOutBuf = 'U';
charOutBuf++;
*charOutBuf = 'T';
charOutBuf++;
cout << "." << endl;
}
The characters written to the output stream
by charOutBuf are: OUT.
См. также
Итератор
Потокобезопасность в стандартной библиотеке C++
Справочник по стандартной библиотеке C++