std::experimental:: ostream_joiner
|
ヘッダーで定義
<experimental/iterator>
|
||
|
template
<
class
DelimT,
|
(ライブラリ基盤仕様 TS v2) | |
std::experimental::ostream_joiner
は単一パス
LegacyOutputIterator
であり、構築時に指定された
std::basic_ostream
オブジェクトに対して、
operator<<
を使用して連続するオブジェクトを書き込み、区切り文字で区切ります。区切り文字は、書き込まれる2つのオブジェクトの間に出力ストリームに書き込まれます。書き込み操作は、イテレータ(デリファレンスされているかどうかに関わらず)が代入されたときに実行されます。
ostream_joiner
のインクリメントは何も行いません。
典型的な実装では、
ostream_joiner
のデータメンバは、関連付けられた
std::basic_ostream
へのポインタ、デリミタ、および次の書き込みがシーケンス内の最初の要素であるかどうかを示す
bool
メンバのみです。
std::ostream_iterator
と比較して、
ostream_joiner
は区切りシーケンスの出力回数が1回少なく、出力対象のオブジェクトの型に対してテンプレート化されていません。
目次 |
メンバー型
| メンバ型 | 定義 |
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
を構築する
(public member function) |
|
|
(destructor)
(implicitly declared)
|
ostream_joiner
を破棄する
(public member function) |
|
オブジェクトを関連付けられた出力シーケンスに書き込む
(public member function) |
|
|
何もしない操作
(public member function) |
|
|
何もしない操作
(public member function) |
非メンバー関数
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
から読み取る入力イテレータ
(クラステンプレート) |