繁体   English   中英

用boost :: graph包装我的自定义图并计算dijkstra_shortest_paths

[英]Wrap my custom graph with boost::graph and calculate dijkstra_shortest_paths

我有一个项目,其中填充了一个大图,如下所示:

struct EdgeItem{
    int mPid1;
    int mPid2;
    double weight;
};
struct StationItem{
    int mPid;
    QString mName;
};
QMap<int, StationItem> StationsMap;
QList<EdgeItem> mEdgesList;
QVector<EdgeItem*> GetEdgesByPid(int Pid);
// and some other service methods

车站地图按Pid索引。 作为MapLayerEdgeItem的图形的边缘具有权重。 不必复制图的数据并使用现有的结构就很重要。 我需要运行并计算它的dijkstra_shortest_paths。 请提出我需要开始的事情。

为此,您需要首先使图形适应增强图形库(BGL)界面。 正如评论中提到的,请看这个问题 ,它链接了boost的如何转换现有图形的方法

看来您确实在问两个问题。 如何使我的图形表示适应BGL? 以及如何在Boost中执行Dijsktra(并从中提取含义)?

如果您不习惯BGL,两者都不是完全无关紧要的。 为什么不尝试解决适配器问题,然后在遇到麻烦时提出一个更具体的问题?

如果您只需要Djikstra,我建议您使用自己的实现。 如果您认为您将使用其他BGL功能,则可以使用适配器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM