Merci pour ta réponse.
En fait j'essaye d'utiliser une priority_queue, qui contient des pointeurs de Node.
Apparament la manière la plus simple d'en utiliser une est de surcharger operator< sur les objets qu'elle contient.
on peut ainsi déclarer la priority_queue de cette manière:
priority_queue<Node*> openList;
Je viens de trouver une autre manière, mais je ne trouve pas ça très compréhenssible:
1 2 3 4 5
| class NodeCompare {
public:
bool operator()(const Node* n1, const Node* n2) const{ return *n1 > *n2; }
}; |
et je dois déclarer ma priority queue comme ça:
priority_queue<Node*,vector<Node*>,NodeCompare> openList;
Edit: En fait je viens de me rendre compte que des pointeurs dans une priority_queue, c'etait pas malin
. Il suffit en effet qu'un des objets pointé soit changé pour que la priority_queue ne soit plus dans le bon ordre...
Partager