Java 優先度キュー アルゴから C# にエクスポートしようとしています。しかし、 Comparable<> インターフェイスには問題があります
ジャワ
public class MaxPQ<Key extends Comparable<Key>>
{
private Key[] pq; // heap-ordered complete binary tree
private int N = 0; // in pq[1..N] with pq[0] unused
public MaxPQ(int maxN)
{ pq = (Key[]) new Comparable[maxN+1]; }
//...
private bool less(int i, int j)
{ return pq[i].compareTo(pq[j]) < 0; }
}
c#
public class MaxPQ<Key> where Key : IComparable<Key>
{
private Key[] pq; // heap-ordered complete binary tree
private int N = 0; // in pq[1..N] with pq[0] unused
public MaxPQ(int maxN)
{ pq = new Key[maxN + 1]; }
//...
private bool less(int i, int j)
{ return pq[i].compareTo(pq[j]) < 0; }//Error
}
エラーがスローされます:「キー」には「compareTo」の定義が含まれておらず、タイプ「キー」の最初の引数を受け入れる拡張メソッド「compareTo」が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)
あなたはこれを解決できますか?