名稱空間
變體
操作

std::experimental::ostream_joiner

來自 cppreference.com
< cpp‎ | 實驗性
 
 
實驗性
技術規範
檔案系統庫 (檔案系統 TS)
庫基礎 (庫基礎 TS)
庫基礎 2 (庫基礎 TS v2)
庫基礎 3 (庫基礎 TS v3)
並行性擴充套件 (並行性 TS)
並行性擴充套件 2 (並行性 TS v2)
併發性擴充套件 (併發性 TS)
併發擴充套件 2 (併發 TS v2)
概念 (概念 TS)
範圍 (範圍 TS)
反射 (反射 TS)
數學特殊函式 (特殊函式 TR)
實驗性非 TS
模式匹配
線性代數
std::execution
契約
2D 圖形
 
 
 
定義於標頭檔案 <experimental/iterator>
template<

    class DelimT,
    class CharT = char,
    class Traits = std::char_traits<CharT>
>

class ostream_joiner;
(庫基礎 TS v2)

std::experimental::ostream_joiner 是一個單趟 LegacyOutputIterator,它使用 operator<< 將連續物件寫入其構造時所關聯的 std::basic_ostream 物件,並用分隔符分隔。分隔符在每兩個寫入的物件之間寫入到輸出流。寫入操作在迭代器(無論是否解引用)被賦值時執行。遞增 ostream_joiner 是空操作。

在典型的實現中,ostream_joiner 的唯一資料成員是指向關聯的 std::basic_ostream 的指標、分隔符以及一個 bool 成員,指示下一次寫入是否是序列中的第一個元素。

std::ostream_iterator 相比,ostream_joiner 列印分隔符序列的次數少一次,並且不對要列印的物件的型別進行模板化。

目錄

[編輯] 成員型別

成員型別 定義
char_type CharT
traits_type 特性
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
(公有成員函式) [編輯]
(解構函式)
(隱式宣告)
析構一個 ostream_joiner
(公有成員函式) [編輯]
將物件寫入關聯的輸出序列
(公有成員函式) [編輯]
無操作
(公有成員函式) [編輯]
無操作
(公有成員函式) [編輯]

[編輯] 非成員函式

建立一個 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讀取的輸入迭代器
(類模板) [編輯]