Inhaltsverzeichnis

next_permutation()

#include <algorithm>

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

Erzeugt die nächste Permutation des Bereiches [first,last). Die Menge aller Permutationen 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 dabei die niedrigste Permutation, eine aufsteigend geordnete Folge, ist das Ergebnis false.

Siehe auch

is_permutation(), prev_permutation().

Beispiel

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