Inhaltsverzeichnis

prev_permutation()

#include <algorithm>

bool prev_permutation (Bi first, Bi last) 
bool prev_permutation (Bi first, Bi last, binary comp) 
 
[last,B] = ranges::prev_permutation (Range r, Binary comp = {}, Proj proj = {}) 
[last,B] = ranges::prev_permutation (Bi first, Bi last, Binary comp = {}, Proj proj = {}) 

Erzeugt die vorhergehende Permutation des Bereiches [first,last). Die Menge aller Permutationen eines Bereiches ist lexikographisch aufsteigend geordnet.

Parameter

first Anfang des Bereiches
last Ende des Bereiches
comp Vergleichskriterium (Vorgabe = less)
proj einstelliger Funktor (Vorgabe = std::identity)

Ergebnis

Rückgabewert: Boolescher Wert B bzw. {last,B} als Struktur mit Elementen namens in, found mit true, wenn die neue Anordnung wieder ungeordnet ist. Entsteht die höchste Permutation, eine absteigend geordnete Folge, ist das Ergebnis false.

Siehe auch

is_permutation(), next_permutation().

Beispiel

prev_permutation.cpp
#include <algorithm>
#include <iostream>
#inlcude <string>
int main()
{
  std::string s = "Hallo";                  // niedrigste Permutation
  std::prev_permutation(begin(s), end(s));  // hoechste Permutation
  do
  {
    std::cout << s << '\n';                 // absteigend ausgeben 
  } while (std::prev_permutation(begin(s), end(s)));
}