【问题标题】:C# XNA equivalent of Java's PriorityQueue with Comparator?C# XNA 相当于 Java 的 PriorityQueue 和 Comparator?
【发布时间】:2010-02-06 21:32:38
【问题描述】:

我正在一块瓷砖上实现 Dijkstra。我想将所有图块存储在优先队列中,按它们与起始位置的距离排序。在 Java 中,这将类似于:

Queue<Point> pq = new PriorityQueue<Point>(new Comparator() { /* sort by distance from start */ });

C# XNA 中的等价物是什么? C# 有一个 PriorityQueue 类,但它只适用于 IComparable 对象,Point 对象不适用。

【问题讨论】:

  • 为什么不创建一个派生自 Point 的对象来实现 IComparable

标签: c# java xna priority-queue comparator


【解决方案1】:

由于您不能从 struct Point 派生,您可以做一个 IComparable ComparablePoint 类的最小实现,将 Point 作为复合成员。

【讨论】:

    【解决方案2】:

    我认为简单的解决方案是实现自己的类来存储节点并使其具有可比性(通过实现 IComparable 接口)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-29
      • 2010-09-24
      • 2023-04-06
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      相关资源
      最近更新 更多