J'ai un c++ vectoravec des std::pair<unsigned long, unsigned long>objets. J'essaie de générer des permutations des objets du vecteur en utilisantstd::next_permutation() . Cependant, je veux que les permutations soient d'une taille donnée, vous savez, similaire à la permutationsfonction en python où la taille de la permutation retournée attendue est spécifiée.
Fondamentalement, l' c++équivalent de
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)? permutations python fournit dupliqué [(1, 1), (1, 1)], tandis questd::next_permutation évitez les doublons (uniquement {1, 1}).