Déclaration d'une file d'attente prioritaire avec un comparateur personnalisé en C
En C, lorsque vous tentez de déclarer une file d'attente prioritaire qui utilise un comparateur personnalisé, il est essentiel de définir correctement le comparateur. L'erreur "Comparer" n'est pas un nom de type survient lorsque le comparateur n'est pas déclaré en tant que classe ou fonction autonome.
Pour résoudre ce problème, vous pouvez définir une classe pour le comparateur et surcharger l'opérateur() pour comme le démontre l'exemple suivant :
<code class="cpp">class Compare { public: bool operator() (Node a, Node b) { // Comparator logic } };</code>
Vous pouvez également utiliser une fonction std::function pour définir le comparateur, comme indiqué ci-dessous :
<code class="cpp">bool Compare(Node a, Node b) { // Comparator logic } std::priority_queue<Node, std::vector<Node>, std::function<bool(Node, Node)>> pq(Compare);</code>
En suivant ces approches , vous pouvez effectivement déclarer une file d'attente prioritaire avec un comparateur personnalisé en C .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!