- iterator[meta header]
- std[meta namespace]
- class template[meta id-type]
namespace std {
template <class T, class CharT = char,
class Traits = char_traits<CharT>, class Distance = ptrdiff_t>
class istream_iterator
: public iterator<input_iterator_tag, T, Distance, const T*, const T&>
}
- char_traits[link /reference/string/char_traits.md]
- ptrdiff_t[link /reference/cstddef/ptrdiff_t.md]
- iterator[link /reference/iterator/iterator.md]
- input_iterator_tag[link /reference/iterator/iterator_tag.md]
istream_iterator
は、operator++()
でイテレータを進めることにより、入力ストリームのoperator>>()
でストリームからデータを読み込む入力イテレータである。
ストリームからの読み取りがfail() == true
となる場合に、イテレータはend
イテレータと等しくなる。
名前 |
説明 |
対応バージョン |
(constructor) |
コンストラクタ |
|
~istream_iterator() = default |
デストラクタ |
|
operator=(const istream_iterator&) = default
operator=(istream_iterator&&) = default |
代入演算子 |
|
operator* |
間接参照 |
|
operator-> |
メンバアクセス |
|
operator++ |
イテレータをインクリメントする |
|
型 |
説明 |
対応バージョン |
char_type |
CharT (デフォルトはchar) |
|
traits_type |
Traits (デフォルトはchar_traits<CharT>) |
|
istream_type |
入力ストリーム型 basic_istream <CharT, Traits> |
|
difference_type |
Distance (デフォルトはptrdiff_t ) |
|
pointer |
const T* |
|
value_type |
T |
|
iterator_category |
input_iterator_tag |
|
reference |
const T& |
|
#include <iostream>
#include <iterator>
#include <sstream>
#include <algorithm>
int main()
{
// 文字列の入力ストリームにデータを入れる
std::stringstream ss;
ss << 1 << std::endl
<< 2 << std::endl
<< 3;
// 文字列の入力ストリームからデータを読み込むイテレータを作る
std::istream_iterator<int> it(ss);
std::istream_iterator<int> last;
// イテレータを進めることにより、入力ストリームからデータを順に読み取る
std::for_each(it, last, [](int x) {
std::cout << x << std::endl;
});
}
- std::istream_iterator[color ff0000]
- std::stringstream[link /reference/sstream/basic_stringstream.md]