std::experimental::ostream_joiner
出自 cppreference.com
< cpp | experimental
| 定義於標頭檔 <experimental/iterator> |
||
| template< class DelimT, |
(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 讀取的輸入迭代器 (類別模板) |