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 中国語 Web サイトの他の関連記事を参照してください。