Maison  >  Article  >  développement back-end  >  Comment déclarer une file d'attente prioritaire avec un comparateur personnalisé en C ?

Comment déclarer une file d'attente prioritaire avec un comparateur personnalisé en C ?

DDD
DDDoriginal
2024-10-24 13:31:02257parcourir

How to Declare a Priority Queue with a Custom Comparator in C  ?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn