Something like this?
outputsCode:#include <iostream> #include <vector> #include <algorithm> #include <iterator> #include <limits> template <typename iter> bool increment(iter first, iter last, typename std::iterator_traits<iter>::value_type min = std::numeric_limits<typename std::iterator_traits<iter>::value_type>::min(), typename std::iterator_traits<iter>::value_type max = std::numeric_limits<typename std::iterator_traits<iter>::value_type>::max()) { while((first!=last) && (*first == max)) { *first = min; ++first; }; if(first!=last) { ++*first; return true; } return false; } int main() { std::vector<char> vect(5); //vector<bool> is not a container do { std::copy(vect.rbegin(), vect.rend(), std::ostream_iterator<bool>(std::cout)); std::cout << std::endl; }while(increment(vect.begin(), vect.end(), false, true)); }
Code:00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111




Reply With Quote