在 C 中声明具有自定义比较器的优先级队列
在 C 中,当尝试声明使用自定义比较器的优先级队列时,正确定义比较器至关重要。当比较器未声明为类或独立函数时,会出现错误“Compare”不是类型名称。
要解决此问题,您可以为比较器定义一个类并重载operator()它,如以下示例所示:
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