名稱空間
變體
操作

std::ostreambuf_iterator

來自 cppreference.com
 
 
迭代器庫
迭代器概念
迭代器原語
演算法概念與工具
間接可呼叫概念
常用演算法要求
工具
迭代器介面卡
範圍訪問
(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 是一個單趟 LegacyOutputIterator,它將連續字元寫入構造時使用的 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 特性
streambuf_type std::basic_streambuf<CharT, Traits>
ostream_type std::basic_ostream<CharT, Traits>

成員型別 iterator_categoryvalue_typedifference_typepointerreference 要求透過繼承自 std::iterator<std::output_iterator_tag, void, void, void, void> 來獲得。

(C++17 前)

[編輯] 成員函式

構造一個新的 ostreambuf_iterator
(public member function) [編輯]
(解構函式)
(隱式宣告)
銷燬一個 ostreambuf_iterator
(public member function) [編輯]
向關聯的輸出序列寫入一個字元
(public member function) [編輯]
無操作
(public member function) [編輯]
無操作
(public member function) [編輯]
測試輸出是否失敗
(public member function) [編輯]

[編輯] 示例

#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讀取的輸入迭代器
(class template) [編輯]
寫入std::basic_ostream的輸出迭代器
(class template) [編輯]