【问题标题】:I need to use graphs in C++/C#. Is there any built-in C++/C# library which I can use? [closed]我需要在 C++/C# 中使用图表。是否有任何我可以使用的内置 C++/C# 库? [关闭]
【发布时间】:2014-02-02 20:53:57
【问题描述】:

我想在 C++ 中使用一个图形,这样我就可以用它来存储城市和它们之间的距离,然后在上面尝试一些寻路算法。是否有任何内置库等可以包含在我的项目中?

像#include 等。如果不是,请告诉我C# 的相同内容。

【问题讨论】:

  • BGL
  • 要求我们推荐或查找工具、或最喜欢的场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。
  • GDI 库内置于 Windows。如果你画一些点和线就绰绰有余了。
  • 我不是画点和线,我想把它作为一个简单的数据结构来存储节点。我正在制作一个控制台应用程序。

标签: c# c++ visual-c++ c++11


【解决方案1】:

如果你想做寻路,你只需要一些特殊形式的树。当您查看寻路算法时,它们中的大多数都得到了很好的描述。例如,您可以使用priority queue,它适合将后继者存储在树的顶部(快速访问)。

我可以建议的具体实现是 A*:

您可以构建自己的启发式方法,这意味着您可以输入自己的旅行逻辑。

它的一个实现是a-star-algorithm-implementation

【讨论】:

  • 我也在想,也许我可以使用优先级队列和其他一些数组等,就不需要图形了?
  • 只要你不想可视化你的图表,优先队列结构就足够了 + 某种列表/数组数据结构。这还取决于您将拥有多少数据以及您的启发式方法(超定/欠定)。如果您需要复杂的解决方案,boost 库非常适合,因为它提供了数据结构以及完整的路径查找算法。
【解决方案2】:

Boost Graph Library 怎么样?

Boost 通常为数据结构和算法提供非常好的库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    相关资源
    最近更新 更多