Rust 的 BinaryHeap
结构体实现了迭代器接口,因此你可以遍历它。不过,由于 BinaryHeap
是一个优先队列,它默认是按照元素的优先级顺序(对于 MinBinaryHeap
是最小到最大,对于 MaxBinaryHeap
是最大到最小)来遍历的。
如果你想要遍历 BinaryHeap
中的所有元素,你可以使用 .into_iter()
方法将其转换为迭代器,并遍历其中的元素。注意,.into_iter()
方法会消费掉 BinaryHeap
,因为它会将堆中的元素移动到迭代器中。如果你想要在遍历后仍然保留堆的结构,你需要先复制堆,或者使用其他方法来遍历元素而不消费堆。
下面是一个简单的例子,展示了如何使用 BinaryHeap
并遍历它的元素:
use std::collections::BinaryHeap;
use std::cmp::Ordering;
// 定义一个比较函数,用于 MinBinaryHeap
struct Item {
value: i32,
priority: usize,
}
impl PartialOrd for Item {
fn partial_cmp(&self