在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