J'ai rencontré un problème chaque fois que j'essayais de trier un vecteur d'objets qui résultait en une boucle infinie. J'utilise une fonction de comparaison personnalisée que j'ai transmise à la fonction de tri.C++ std :: vecteur std :: sort boucle infinie
J'ai été en mesure de résoudre le problème en retournant false lorsque deux objets étaient égaux au lieu de vrai, mais je ne comprends pas complètement la solution. Je pense qu'il est parce que ma fonction de comparaison enfreignait cette règle comme indiqué sur cplusplus.com:
objet fonction de comparaison qui, prenant deux valeurs du même type que celles contenues dans la gamme, renvoie true si la premier argument va avant le deuxième argument dans le spécifique strict faible l'ordre définit, et faux sinon.
Quelqu'un peut-il fournir une explication plus détaillée?
http://www.sgi.com/tech/stl/StrictWeakOrdering.html –
Pouvez-vous poster votre fonction de comparaison? – GWW
De quelle autre explication avez-vous besoin? Cette définition est très claire. Si 'A' devrait apparaître avant' B' dans une séquence ordonnée, alors 'A' <' B' doit être vrai. Sinon, cela doit être faux. –