Skip to content

Latest commit

 

History

History
75 lines (58 loc) · 2.3 KB

File metadata and controls

75 lines (58 loc) · 2.3 KB

operator++

  • iterator[meta header]
  • std[meta namespace]
  • istream_iterator[meta class]
  • function[meta id-type]
istream_iterator<T, CharT, Traits, Distance>& operator++();   // (1) C++98

istream_iterator<T, CharT, Traits, Distance> operator++(int); // (2) C++98
istream_iterator operator++(int) = default;                   // (2) C++29

概要

イテレータを進める。 入力ストリームからoperator>>でデータを読み取る。

事前条件

*thisが終端イテレータではないこと(保持している入力ストリームへのポインタがヌルポインタではないこと)。この条件を満たさない場合、動作は未定義である。

効果

前置operator++*in_stream >> value; return *this;

後置operator++istream_iterator<T, CharT, Traits, Distance> tmp = *this; *in_stream >> value; return tmp;

in_streamは、メンバ変数として保持している入力ストリームオブジェクトへのポインタ

備考

#include <iostream>
#include <iterator>
#include <sstream>

int main()
{
  std::stringstream ss;
  ss << 1 << std::endl
     << 2 << std::endl
     << 3;

  std::istream_iterator<int> it(ss);
  std::istream_iterator<int> last;

  for (; it != last; ++it) {
    int result = *it;
    std::cout << result << std::endl;
  }
}
  • ++it[color ff0000]
  • std::stringstream[link /reference/sstream/basic_stringstream.md]

出力

1
2
3

参照