fork download
  1. //#include <iterator>
  2. #include <cstdio>
  3.  
  4. struct A{
  5. struct iterator/*: public std::iterator<std::input_iterator_tag, int>*/{
  6. A& up;
  7. int i;
  8. iterator(A& up,int i):up(up),i(i){}
  9. bool operator!=(iterator const& b) {
  10. return i != b.i;
  11. }
  12. int operator*() {
  13. return up.b;
  14. }
  15. iterator& operator++(){
  16. int r=up.a+up.b;
  17. up.b=up.a;
  18. up.a=r;
  19. i-=1;
  20. return *this;
  21. }
  22. };
  23. int n,a=1,b=1;
  24. A(int n):n(n){}
  25. iterator begin(){
  26. return iterator(*this,n);
  27. }
  28. iterator end(){
  29. return iterator(*this,0);
  30. }
  31. };
  32.  
  33. int main()
  34. {
  35. for (auto x:A(10)){
  36. printf("%-3d",x);
  37. }
  38. }
  39.  
Success #stdin #stdout 0s 5304KB
stdin
Standard input is empty
stdout
1  1  2  3  5  8  13 21 34 55