|  | Home | Libraries | People | FAQ | More | 
template<class BidirectionalRange> bool next_permutation(BidirectionalRange& rng); template<class BidirectionalRange> bool next_permutation(const BidirectionalRange& rng); template<class BidirectionalRange, class Compare> bool next_permutation(BidirectionalRange& rng, Compare pred); template<class BidirectionalRange, class Compare> bool next_permutation(const BidirectionalRange& rng, Compare pred);
            next_permutation transforms
            the range of elements rng
            into the lexicographically next greater permutation of the elements if
            such a permutation exists. If one does not exist then the range is transformed
            into the lexicographically smallest permutation and false
            is returned. true is returned
            when the next greater permutation is successfully generated.
          
            The ordering relationship is determined by using operator< in the non-predicate versions, and
            by evaluating pred in
            the predicate versions.
          
            Defined in the header file boost/range/algorithm/permutation.hpp
          
For the non-predicate versions:
BidirectionalRange
                is a model of the Bidirectional
                Range Concept.
              BidirectionalRange
                is mutable.
              BidirectionalRange's
                value type is a model of the LessThanComparableConcept.
              BidirectionalRange's
                value type is a strict weak ordering,
                as defined in the LessThanComparableConcept
                requirements.
              For the predicate versions:
BidirectionalRange
                is a model of the Bidirectional
                Range Concept.
              BidirectionalRange
                is mutable.
              Compare is a model
                of the StrictWeakOrderingConcept.
              BidirectionalRange's
                value type is convertible to both of Compare's
                argument types.
              
            Linear. At most distance(rng) / 2
            swaps.