#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.
first | Anfang des Bereiches |
last | Ende des Bereiches |
comp | Vergleichskriterium (Vorgabe = less ) |
proj | einstelliger Funktor (Vorgabe = std::identity ) |
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
.
#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))); }