surcharge d'un operateur de comparaison dans une priority_queue
bonjour,
je dois utiliser une priority_queue mais avec mon prorper operateur de comparaison.
voici comment je défini la priority_queue.
Code:
1 2
|
std::priority_queue< std::vector<std::set<CClause*> * >, CompareClause() > Q; |
et le compareClause est ici.
Code:
1 2 3 4 5 6 7 8 9 10
|
struct CompareClause{
bool operator ()( const std::set<CClause*> *p, const std::set<CClause*> *q )
{
return p->size() < q->size() ;
}
}; |
j'aurais cru qu'il fallait utiliser les foncteurs, mais il m'envoi ballader.
Code:
1 2 3 4 5 6 7 8 9 10
|
ocuments/Logic$ make -j 2
g++ -o Antichaine.o -c Antichaine.cpp -Wall -ansi
Antichaine.cpp: In member function void CAntichaine::construireA():
Antichaine.cpp:20: erreur: CompareClause ()() is not a class, struct, or union type
Antichaine.cpp:20: erreur: patron de l'argument 3 est invalide
Antichaine.cpp:20: erreur: invalid type in declaration before ; token
Antichaine.cpp:20: attention : unused variable Q
make: *** [Antichaine.o] Erreur 1
elekis@carla:~/Documents/Logic$ |
le truc, c'est que l'on doit mettre pas mal d'élément dedans (des std::set<Clause*> ) et apres on doit les retirer un a un du plus grand au plus
petit. et on voudrais que le plus grand est celui qui a le plus grand nombre de clause.
merci
a+++