std::ostream_iterator - cppreference.com
提供: cppreference.com
<tbody> </tbody> <tbody class="t-dcl-rev "> </tbody>
| ヘッダ |
||
|
|
(C++17未満) | |
|
|
(C++17以上) | |
std::ostream_iterator は指定された std::basic_ostream オブジェクトに operator<< を使用して T 型の連続するオブジェクトを書き込むシングルパスの LegacyOutputIterator です。 毎回の書き込み操作後にオプションの区切り文字列が出力ストリームに書き込まれます。 書き込み操作はイテレータが (逆参照されたかどうかにかかわらず) 代入されたときに行われます。 std::ostream_iterator のインクリメントは何もしません。
一般的な実装では、 std::ostream_iterator の唯一のデータメンバは紐付けられた std::basic_ostream へのポインタと区切り文字列の最初の文字へのポインタです。
文字を書き込むとき、 std::ostreambuf_iterator は文字ごとに sentry オブジェクトを構築、破棄するオーバーヘッドを回避するため、より効率的です。
メンバ型
| メンバ型 | 定義 |
iterator_category
|
std::output_iterator_tag
|
value_type
|
void
|
difference_type
|
void
|
pointer
|
void
|
reference
|
void
|
char_type
|
CharT
|
traits_type
|
Traits
|
ostream_type
|
std::basic_ostream<CharT, Traits>
|
|
メンバ型 |
(C++17未満) |
メンバ関数
例
#include <iostream> #include <sstream> #include <iterator> #include <numeric> int main() { std::istringstream str("0.1 0.2 0.3 0.4"); std::partial_sum(std::istream_iterator<double>(str), std::istream_iterator<double>(), std::ostream_iterator<double>(std::cout, " ")); }
出力: