命名空間
變體
動作

std::experimental::ostream_joiner

出自 cppreference.com
 
 
實驗性
技術規範
檔案系統函式庫 (filesystem TS)
函式庫基礎 (library fundamentals TS)
函式庫基礎 2 (library fundamentals TS v2)
函式庫基礎 3 (library fundamentals TS v3)
平行化擴充 (parallelism TS)
平行化擴充 2 (parallelism TS v2)
並行化擴充 (concurrency TS)
並行化擴充 2 (concurrency TS v2)
概念 (concepts TS)
範圍 (ranges TS)
反射 (reflection TS)
數學特殊函數 (special functions TR)
實驗性非 TS
模式匹配
線性代數
std::execution
合約
2D 圖形
 
 
 
定義於標頭檔 <experimental/iterator>
template<

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

class ostream_joiner;
(Library Fundamentals TS v2)

std::experimental::ostream_joiner 是一個單遍(single-pass)LegacyOutputIterator,它將連續的物件寫入其建構時指定的 std::basic_ostream 物件中(使用 operator<<),並以分隔符號隔開。每兩個被寫入的物件之間都會寫入該分隔符號。寫入操作是在對迭代器進行賦值時(無論是否解引用)執行的。遞增 ostream_joiner 不執行任何操作。

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

std::ostream_iterator 相比,ostream_joiner 輸出的分隔符號序列少一次,且不會根據要列印的物件類型進行模板化。

目錄

[編輯] 成員類型

成員型別 定義
char_type CharT
traits_type Traits
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 讀取的輸入迭代器
(類別模板) [編輯]
English Deutsch 日本語 中文(简体) 中文(繁體)