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 montre l'exemple suivant :
class Compare
{
public:
bool operator() (Node a, Node b)
{
// Comparator logic
}
};
Vous pouvez également utiliser une fonction std::pour définir le comparateur, comme indiqué ci-dessous :
bool Compare(Node a, Node b)
{
// Comparator logic
}
std::priority_queue, std::function> pq(Compare);
En suivant ces approches, vous pouvez effectivement déclarer une priorité file d'attente avec un comparateur personnalisé en C .
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3