bonjour,
je dois utiliser une priority_queue mais avec mon prorper operateur de comparaison.
voici comment je défini la priority_queue.
et le compareClause est ici.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::priority_queue< std::vector<std::set<CClause*> * >, CompareClause() > Q;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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$
petit. et on voudrais que le plus grand est celui qui a le plus grand nombre de clause.
merci
a+++
Partager