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