2010-12-15 56 views
0

Cela m'a rendu fou pour 3 heures. Quelqu'un voit une raison pour laquelle cela ne fonctionne pas?Comparateur personnalisé en stl

struct sortByPropRev 
{ 
    bool operator()(const cust_type &a, const cust_type &b) const 
    { 
     return a.prop > b.prop; 
    } 
}; 
... 
priority_queue<cust_type, vector<cust_type>, sortByPropRev> x; 

Je reçois des erreurs de compilation:
Error C2664: 'bool (cust_type &,cust_type &)' : cannot convert parameter 1 from 'const cust_type' to 'cust_type &'

et 2 autres comme elle, mais sur les différentes lignes de algorithm.h

+0

Comment cust_type est-il défini? –

+0

'struct cust_type {int a, int b, ...; cust_type (int a, int b, ...): a (a), b (b) {}} ' – baruch

Répondre

0

Peu importe. J'ai trouvé le problème. Il était dans une partie différente du code qui appelait les mêmes fonctions d'algorithme. Désolé de déranger tout le monde et merci d'essayer d'aider.

0

Vous avez donné b.pprop, vs a.prop. Je pense que vu l'erreur que le compilateur n'a pas réussi à analyser la définition de la structure correctement - vérifier les erreurs de syntaxe dans le code juste au-dessus.

+0

qui était une faute de frappe ici, pas dans le code d'origine – baruch