Объявление приоритетной очереди с помощью пользовательского компаратора в C
В C при попытке объявить приоритетную очередь, использующую собственный компаратор, важно правильно определить компаратор. Ошибка «Сравнить» не является именем типа возникает, когда компаратор не объявлен как класс или отдельная функция.
Чтобы решить эту проблему, вы можете определить класс для компаратора и перегрузить оператор() для это, как показано в следующем примере:
class Compare
{
public:
bool operator() (Node a, Node b)
{
// Comparator logic
}
};
В качестве альтернативы вы можете использовать функцию std::function для определения компаратора, как показано ниже:
bool Compare(Node a, Node b)
{
// Comparator logic
}
std::priority_queue, std::function> pq(Compare);
Следуя этим подходам, вы можете эффективно объявить приоритет очередь с пользовательским компаратором в C .
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3