

template <class BiIter> bool next_permutation(BiIter start, BiIter end); template <class BiIter, class Comp> bool next_permutation(BiIter start, BiIter end, Comp cmfn);
The next_permutation( ) algorithm constructs the next permutation of a sequence. The permutations are generated assuming that a sorted sequence, from low to high, represents the first permutation. If the next permutation does not exist, next_permutation( ) sorts the sequence as its first permutation and returns false. Otherwise, it returns true.
The second form allows you to specify a comparison function that determines when one element is less than another.

