Maison > développement back-end > C++ > le corps du texte

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

DDD
Libérer: 2024-10-24 13:31:02
original
342 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal