Declarando uma fila de prioridade com um comparador personalizado em C
Em C , ao tentar declarar uma fila de prioridade que utiliza um comparador personalizado, é essencial definir o comparador corretamente. O erro "Compare" is not a type name surge quando o comparador não é declarado como uma classe ou função autônoma.
Para resolver isso, você pode definir uma classe para o comparador e sobrecarregar o operador() para conforme demonstrado no exemplo a seguir:
class Compare
{
public:
bool operator() (Node a, Node b)
{
// Comparator logic
}
};
Alternativamente, você pode utilizar uma função std::para definir o comparador, conforme mostrado abaixo:
bool Compare(Node a, Node b)
{
// Comparator logic
}
std::priority_queue, std::function> pq(Compare);
Seguindo essas abordagens, você pode efetivamente declarar uma prioridade fila com um comparador personalizado em C .
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3