在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中文網其他相關文章!