std::ostreambuf_iterator

出自cppreference.com
 
 
迭代器庫
迭代器概念
迭代器原語
算法概念與工具
間接可調用概念
常用算法要求
(C++20)
(C++20)
(C++20)
工具
(C++20)
迭代器適配器
範圍訪問
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
 
在標頭 <iterator> 定義
template< class CharT, class Traits = std::char_traits<CharT> >
class ostreambuf_iterator
    : public std::iterator<std::output_iterator_tag, void, void, void, void>
(C++17 前)
template< class CharT, class Traits = std::char_traits<CharT> >
class ostreambuf_iterator;
(C++17 起)

std::ostreambuf_iterator 是單趟輸出迭代器,寫入相繼元素到為之創建迭代器的 std::basic_streambuf 對象。實際寫操作在賦值給迭代器(無論是否解引用)時進行。自增 std::ostreambuf_iterator 是無操作。

典型實現中,std::ostreambuf_iterator 僅有的數據成員是指向關聯 std::basic_streambuf 的指針,和指示是否抵達文件尾條件的布爾標誌。

成員類型

成員類型 定義
iterator_category std::output_iterator_tag
value_type void
difference_type

void

(C++20 前)

std::ptrdiff_t

(C++20 起)
pointer void
reference void
char_type CharT
traits_type Traits
streambuf_type std::basic_streambuf<CharT, Traits>
ostream_type std::basic_ostream<CharT, Traits>

要求通過從 std::iterator<std::output_iterator_tag, void, void, void, void> 繼承獲得成員類型 iterator_categoryvalue_typedifference_typepointerreference

(C++17 前)

成員函數

構造新的 ostreambuf_iterator
(公開成員函數) [編輯]
(析構函數)
(隱式聲明)
銷毀 ostreambuf_iterator
(公開成員函數) [編輯]
寫字符到關聯的輸出序列
(公開成員函數) [編輯]
無操作
(公開成員函數) [編輯]
無操作
(公開成員函數) [編輯]
測試是否輸出失敗
(公開成員函數) [編輯]

示例

#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>

int main()
{
    std::string s = "This is an example\n";
    std::copy(s.begin(), s.end(), std::ostreambuf_iterator<char>(std::cout));
}

輸出:

This is an example

參閱

std::basic_streambuf 讀取的輸入迭代器
(類模板) [編輯]
寫入 std::basic_ostream 的輸出迭代器
(類模板) [編輯]