std::ostream_iterator
| ヘッダで定義 <iterator>
|
||
template< class T,
class CharT = char,
class Traits = std::char_traits<CharT> >
class ostream_iterator
: public std::iterator<std::output_iterator_tag, void, void, void, void>
|
(C++17まで) | |
template< class T,
class CharT = char,
class Traits = std::char_traits<CharT> >
class ostream_iterator;
|
(C++17から) | |
std::ostream_iterator はシングルパスの LegacyOutputIterator であり、型 T を std::basic_ostream オブジェクトに書き込みます。書き込みには operator<< を使用します。オプションの区切り文字列が各書き込み操作の後に出力ストリームに書き込まれます。書き込み操作は、イテレータ(間接参照されているかどうかにかかわらず)に代入が行われたときに実行されます。インクリメント std::ostream_iterator は何も行いません。
典型的な実装では、std::ostream_iterator の唯一のデータメンバは、関連する std::basic_ostream へのポインタと、区切り文字列の最初の文字へのポインタです。
文字を書き込む場合、 std::ostreambuf_iterator の方が効率的です。文字ごとに sentry オブジェクトを構築および破棄するオーバーヘッドを回避できるためです。
メンバー型
| メンバ型 | 定義 | ||||
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)
|
連続する要素を出力ストリームに書き込み、隣接する要素を区切り文字で分離する出力イテレータ
(クラステンプレート) |