【发布时间】:2014-05-23 04:42:07
【问题描述】:
我一直在松散地关注this example、this one 和this stack overflow post,尝试应用 Dijkstra 算法来找到两个节点之间最短路径的成本。
如果我尝试遵循第一个示例,我会得到一个error with the typedef statement for NameMap。这个错误很神秘,很冗长,我不知道该怎么处理它。
如果我尝试遵循第二个示例(从 Boost 文档复制粘贴!!)它 does not compile。这个错误更加神秘和冗长。
第三个(堆栈溢出帖子)依赖于与第一个相同的 typedef。
这是用户错误吗?可能是这样,但是我应该如何解释从库代码中产生的错误消息?
更新 1
我正在使用来自 debian 测试的 g++ (Debian 4.8.2-21) 4.8.2。
更新 2
Here 是不工作的源代码的压缩版本。有两行以“// 以下行导致错误”开头的行是有问题的。
更新 3 我变了
typedef adjacency_list<listS, vecS, directedS, allow_parallel_edge_tag, EdgeWeightProperty> Graph;
typedef adjacency_list<listS, vecS, directedS, no_property , EdgeWeightProperty> Graph;
【问题讨论】:
-
您使用的是哪个编译器/平台?刚刚用 g++ (4.8.2)/linux 尝试了你的第二个例子,它编译没有问题。
-
@jsantander 在我看来像 GCC(编译器错误中的
__gnu_cxx)。示例工作正常,问题是他的代码只是“松散地遵循”示例......似乎有点太松散了。 -
g++ (Debian 4.8.2-21) 4.8.2
标签: c++ boost graph dijkstra boost-graph