Name
prev_permutation function template — Generates previous permutation
Synopsis
template<typename BidiIter> bool prev_permutation(BidiIter first, BidiIter last); template<typename BidiIter, typename Compare> bool prev_permutation(BidiIter first, BidiIter last, Compare comp);
The prev_permutation
function template rearranges the contents of the range [first
, last
) to the previous permutation,
assuming that there is a set of lexicographically ordered
permutations. The return value is true
if the previous permutation is
generated, or false
if the range
is at the first permutation, in which case the function cycles and
generates the last permutation (that is, with all elements in
descending order).
Figure 13-9 (under
next_permutation
) shows all the
permutations, in order, for a sequence. The prev_permutation
function swaps elements
to form the previous permutation. For example, if the input is
permutation 3, the result is permutation 2. If the input is
permutation 1, the result is permutation 6, and prev_permutation
returns false
.
Technical Notes
Complexity is linear: at most (last - first) / 2 swaps are performed.
Get C++ In a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.