我有一个HashMap<(usize,usize),Point3d>
,我想根据某个度量删除最小元素。
let closest_edge = {
let edges = exterior.keys();
edges.reduce(|k1:&(usize,usize),k2:&(usize,usize)|-> &(usize,usize) {
// return minimal value
}).unwrap()
};
exterior.remove(closest_edge);
字符串
然而,我不能删除最小边,因为在从exterior
获取键时,借用是不可变的。具体来说,这是我的错误:
cannot borrow `exterior` as mutable because it is also borrowed as immutable
型
有没有一种习惯的方法来编写一个重新 Shuffle 的队列?Queue
不起作用,因为我想要最小的元素,而不是最老的元素。retain
也不起作用,因为我需要知道最小距离是多少,而且我只想删除一个元素。PriorityQueue
也不完全正确,因为优先级可能会随着回合的不同而变化。(每一回合我都想找到一条最接近我正在观察的点的边,所以距离函数每次都会变化)
1条答案
按热度按时间qij5mzcb1#
因为你的键是
Copy
,你可以通过解引用来复制它,这样它就不会从map中借用。字符串