std:: ostream_iterator
|
定義済みヘッダー
<iterator>
|
||
|
template
<
class
T,
class
CharT
=
char
,
|
(C++17まで) | |
|
template
<
class
T,
class
CharT
=
char
,
|
(C++17以降) | |
std::ostream_iterator
は、単一パス
LegacyOutputIterator
であり、構築時に指定された
std::basic_ostream
オブジェクトに対して、
operator<<
を使用して型
T
の連続するオブジェクトを書き込みます。オプションの区切り文字列は、すべての書き込み操作の後に出力ストリームに書き込まれます。書き込み操作は、イテレータ(間接参照されているかどうかに関わらず)が代入されたときに実行されます。
std::ostream_iterator
のインクリメントは何も行いません。
典型的な実装では、
std::ostream_iterator
のデータメンバは、関連付けられた
std::basic_ostream
へのポインタと、デリミタ文字列の先頭文字へのポインタのみです。
文字を書き込む際には、 std::ostreambuf_iterator の方が効率的です。これは文字ごとにセントリーオブジェクトの構築と破棄のオーバーヘッドを回避するためです。
目次 |
メンバー型
| メンバ型 | 定義 | ||||
iterator_category
|
std:: output_iterator_tag | ||||
value_type
|
void | ||||
difference_type
|
|
||||
pointer
|
void | ||||
reference
|
void | ||||
char_type
|
CharT
|
||||
traits_type
|
Traits
|
||||
ostream_type
|
std:: basic_ostream < CharT, Traits > |
|
メンバ型
|
(C++17まで) |
メンバー関数
|
新しいostream_iteratorを構築する
(public member function) |
|
ostream_iterator
を破棄する
(public member function) |
|
|
オブジェクトを関連付けられた出力シーケンスに書き込む
(public member function) |
|
|
何も行わない操作
(public member function) |
|
|
何も行わない操作
(public member function) |
例
#include <iostream> #include <iterator> #include <numeric> #include <sstream> int main() { std::istringstream str("0.11 0.22 0.33 0.44"); std::partial_sum(std::istream_iterator<double>(str), std::istream_iterator<double>(), std::ostream_iterator<double>(std::cout, ", ")); std::cout << '\n'; }
出力:
0.11, 0.33, 0.66, 1.1,
関連項目
|
std::basic_streambuf
に書き込む出力イテレータ
(クラステンプレート) |
|
|
std::basic_istream
から読み込む入力イテレータ
(クラステンプレート) |
|
|
(library fundamentals TS v2)
|
連続する要素を出力ストリームに書き込み、隣接する要素を区切り文字で分離する出力イテレータ
(クラステンプレート) |