You need to enable JavaScript to run this app. Petgraph的all_simple_paths()函数需要什么类型注解?
优惠活动
大模型
产品
解决方案
定价
更多

Petgraph的all_simple_paths()函数需要什么类型注解?

Petgraph all_simple_paths() 类型注解报错解决方案

报错原因

all_simple_paths() 返回的迭代器元素是满足 FromIterator<G::NodeId> 约束的任意集合类型,Rust 编译器无法自动推断你期望使用的具体集合类型,因此需要手动指定。

解决方案

推荐直接在函数调用时使用涡轮鱼语法 ::<> 指定集合类型,示例如下:

// 示例指定将路径节点存储为 Vec,NodeId 类型由编译器自动推导
for path in algo::all_simple_paths::<Vec<_>, _>(&graph, x, y, 0, None) {
    // 此处 path 的类型已明确为 Vec<你使用的节点ID类型>,可直接处理
}

如果你需要使用其他集合类型,只需替换尖括号内的 Vec<_> 即可,比如需要对路径节点去重可替换为 HashSet<_>。

如果你不想使用涡轮鱼语法,也可以在循环内对变量标注类型:

for path in algo::all_simple_paths(&graph, x, y, 0, None) {
    let path: Vec<NodeId> = path;
    // 后续处理逻辑
}

内容的提问来源于stack exchange,提问作者curiousdannii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 17:57:05