7
votes

Utiliser next_permutation pour permerger un vecteur de classes

est-il possible d'utiliser std :: Next_permutation () pour permuter les éléments d'un vecteur d'une classe que j'ai créée?

Comment le paramètre de comparaison dans Next_permutation () fonctionne-t-il?


0 commentaires

3 Réponses :


4
votes

Oui, le moyen le plus simple est de remplacer l'opérateur Le paramètre COMP est un pointeur de fonction qui prend deux itérateurs au vecteur et renvoie true ou false en fonction de la façon dont vous les voudriez commander.

EDIT: non testé mais pour ce que ça vaut la peine: xxx


1 commentaires

Je ne sais pas, n'était pas moi, je n'ai même pas de compte ... merci pour votre réponse



3
votes
  1. chose certaine; Il vous suffit de passer un itérateur au premier élément et d'un au dernier élément, comme d'habitude avec des algorithmes stl.

  2. C'est un cocceur utilisé pour comparer des éléments de votre vecteur (ou conteneur en général); Il devrait se comporter comme tout ici a expliqué dans un contexte légèrement différent, mais ils sont toujours les mêmes).

    Au fait, si vous définissez un


0 commentaires

12
votes

est-il possible d'utiliser std :: Next_permutation () pour permuter les éléments d'un vecteur d'une classe que j'ai créée?

oui!

essayez ceci xxx

Comment le paramètre de comparaison dans Next_permutation () fonctionne-t-il?

Ce pourrait aider


2 commentaires

Merci de votre réponse, mais peut-être que je n'étais pas assez explicite. Dis que j'ai une classe avec plusieurs propriétés différentes, et pas nécessairement des INT. Dois-je surcharger les opérateurs de comparaison de la classe pour que le vecteur soit permuté?


@Prasoonsaurav, que se passe-t-il si des doublons existent? Next_permutation () sautera automatiquement la même permutation?