「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C++ でカスタム コンパレータを使用して優先キューを宣言するにはどうすればよいですか?

C++ でカスタム コンパレータを使用して優先キューを宣言するにはどうすればよいですか?

2024 年 11 月 15 日に公開
ブラウズ:256

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

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 .

のカスタム コンパレータを使用したキュー
リリースステートメント この記事は次の場所に転載されています: 1729743201 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3