首頁 >後端開發 >C++ >如何在 C 中使用自訂比較器聲明優先權佇列?

如何在 C 中使用自訂比較器聲明優先權佇列?

DDD
DDD原創
2024-10-24 13:31:02348瀏覽

How to Declare a Priority Queue with a Custom Comparator in C  ?

在C 中聲明具有自訂比較器的優先權佇列

在C 中,當嘗試宣告使用自訂比較器的優先權佇列時,正確定義比較器至關重要。當比較器未宣告為類別或獨立函數時,會出現錯誤「Compare」不是型別名稱。

要解決此問題,您可以為比較器定義一個類別並重載operator()它,如以下範例所示:

<code class="cpp">class Compare
{
public:
    bool operator() (Node a, Node b)
    {
        // Comparator logic
    }
};</code>

或者,您可以使用std:: function 來定義比較器,如下所示:

<code class="cpp">bool Compare(Node a, Node b)
{
    // Comparator logic
}

std::priority_queue<Node, std::vector<Node>, std::function<bool(Node, Node)>> pq(Compare);</code>

透過遵循以下方法,您可以在C 中使用自訂比較器有效地聲明優先權佇列。

以上是如何在 C 中使用自訂比較器聲明優先權佇列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn