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