Ich habe eine c++ vector
mit std::pair<unsigned long, unsigned long>
Gegenständen. Ich versuche, Permutationen der Objekte des Vektors mit zu erzeugen std::next_permutation()
. Ich möchte jedoch, dass die Permutationen eine bestimmte Größe haben, ähnlich der permutations
Funktion in Python, bei der die Größe der erwarteten zurückgegebenen Permutation angegeben wird.
Grundsätzlich c++
entspricht das Äquivalent von
import itertools
list = [1,2,3,4,5,6,7]
for permutation in itertools.permutations(list, 3):
print(permutation)
(1, 2, 3)
(1, 2, 4)
(1, 2, 5)
(1, 2, 6)
(1, 2, 7)
(1, 3, 2)
(1, 3, 4)
..
(7, 5, 4)
(7, 5, 6)
(7, 6, 1)
(7, 6, 2)
(7, 6, 3)
(7, 6, 4)
(7, 6, 5)
(1, 1)
? Python-Permutationen bieten Duplikate [(1, 1), (1, 1)]
, während std::next_permutation
Duplikate (nur {1, 1}
) vermieden werden .