我想使用petgraph板条箱中的Bellman-Ford算法。下面是一个不能编译的非常简单的示例程序:
extern crate petgraph;
use petgraph::prelude::*;
use petgraph::dot::{Dot, Config};
use petgraph::algo::bellman_ford;
fn main() {
println!("Hello, world!");
let mut deps = Graph::<&str, u64>::new();
let a = deps.add
我有点困惑。我有一个模板类graph,它有一个模板参数--一个类vertex,它可以是对称的,也可以是不对称的,压缩的或者原始的,而且我只知道在运行时哪个。
因此,如果我想从磁盘中获得适当类型的图形,在上面运行Bellman Ford,然后释放内存,我需要在所有四个条件分支中重复模板实例化,如下所示:
#include "graph.h"
int main(){
// parse cmd-line args, to get `compressed` `symmetric`
// TODO get rid of conditionals.
if (compressed) {
我已经建立了包含顶点和边的表格(代表机场和它们之间的路线)。使用下面的查询,我可以得到两点之间的最短路径。
SELECT p.seq, p.node, p.cost, r.geom as edge_geom, c.name
FROM
pgr_dijkstra(
'SELECT id, source, target, distance AS cost FROM airport_route',
(SELECT id FROM airport WHERE code = 'HEL'),
(SELECT id FROM ai