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) |
隣接する要素を区切り文字で区切って、連続する要素を出力ストリームに書き込む出力イテレータ。 (クラステンプレート) |