Bonjour,

J'essaie de me servir d'une priority queue sur une classe personnelle, tout compile, pas de warning, mais j'ai la nette impression que ma fonction personnalisée de tri n'est pas prise en compte:
J'ai des objets HedgeEval dans ma priority queue definis comme tels:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
class HedgeEval
{
    public:
        OGLRMesh::HalfedgeHandle heh;
        float eval;
        HedgeEval( OGLRMesh::HalfedgeHandle h, float ev){ heh = h; eval = ev; };
};
Je définis ma fonction de comparaison dans une classe, comme indiqué dans les tutos STL que j'ai trouvé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
class CompareHedgeEval
{
    public:
        bool operator()( const HedgeEval& he1,  const HedgeEval& he2) const
        {
            if(he1.eval > he2.eval) return true;
            else return false;
        }
};
je crée ma priority_queue

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
std::priority_queue< HedgeEval, vector< HedgeEval >, CompareHedgeEval > halfEdgeQueue;
Et lorsque j'affiche les différentes valeurs de ma priority_queue, ils sont classés en ordre décroissant. J'ai donc essayé de modifier mon operator() en inversant les booléens de retour (true a la place de false et vice versa),
ou encore en remplacant < par >, ou meme en mettant juste un
J'ai invariablement mes éléments classés dans le meme ordre.
quelqu'un saurait il d'ou vient le probleme?

Merci

Z