fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. // preinc
  5. std::vector< bool >& operator++( std::vector<bool>& v )
  6. {
  7. for ( auto e : v )
  8. if ( e = !e )
  9. break;
  10. return v;
  11. }
  12.  
  13. // postinc
  14. std::vector< bool > operator++( std::vector<bool>& v, int )
  15. {
  16. auto t { v };
  17. operator++( v );
  18. return t;
  19. }
  20.  
  21. // insert
  22. std::ostream& operator<<( std::ostream& os, const std::vector< bool > v )
  23. {
  24. for ( std::vector< bool >::const_reverse_iterator ci = v.rbegin(); ci != v.rend(); ++ci )
  25. os << *ci ? '1' : '0';
  26. return os;
  27. }
  28.  
  29. int main()
  30. {
  31. std::vector< bool > b {0,0,0,0};
  32. for ( int i = 0; i < 16; ++i )
  33. {
  34. std::cout << b << std::endl;
  35. ++b;
  36. }
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111