我有一个使用Rust的petgraph crate定义的图。节点的权重类型是String,表示节点的“名称”。有没有一种方法可以只知道节点的权重(即名称)来获得节点索引?crate的文档似乎没有提供任何这样的功能。或者我需要自己维护一个名称到索引的Map吗?
petgraph
String
qybjjes11#
我刚刚遇到了同样的问题。我想出了一个(不是很漂亮,但功能)解决方案:
let p_node = if let Some(idx) = graph.raw_nodes().iter().position(|x| x.weight == p){ NodeIndex::new(idx)} else { graph.add_node(p)};
let p_node = if let Some(idx) = graph.raw_nodes().iter().position(|x| x.weight == p)
{
NodeIndex::new(idx)
} else {
graph.add_node(p)
};
字符串如果你有很多节点,最好保留你自己的HashMap,但这对我来说已经足够了。
1条答案
按热度按时间qybjjes11#
我刚刚遇到了同样的问题。我想出了一个(不是很漂亮,但功能)解决方案:
字符串
如果你有很多节点,最好保留你自己的HashMap,但这对我来说已经足够了。