3个版本 (破坏性)
0.3.0 | 2024年8月3日 |
---|---|
0.2.0 | 2022年11月7日 |
0.1.0 | 2022年10月31日 |
在内存管理中的排名:720
每月下载量:139
43KB
680 行
fixed_heap
类似于BinaryHeap
的Rust数据结构,除了固定大小,由数组支持,具有手动提供的可能依赖于外部数据结构的比较函数。这允许拥有一个由另一个数据结构中相关值排序的键堆。请参阅文档获取更多信息。
fixed_heap
所需的最低Rust版本是1.60.0。要开始使用fixed_heap
,请在您的Cargo.toml
中添加以下内容:
[dependencies]
fixed_heap = "0.2"
为了获得额外的性能,在nightly上启用unstable
功能:
[dependencies]
fixed_heap = { version = "0.2", features = ["unstable"] }
示例
简短示例
use fixed_heap::FixedHeap;
let mut heap: FixedHeap<i32, 16> = FixedHeap::new();
let comparer = |a: &i32, b: &i32, _: &()| a > b;
heap.pop(&comparer, &());
与另一个结构中的键
use fixed_heap::FixedHeap;
let mut heap: FixedHeap<usize, 16> = FixedHeap::new();
let comparer = |a: &usize, b: &usize, state: &[i32; 4]| state[*a] > state[*b];
let state = [1, 3, 1, 2];
heap.push(0, &comparer, &state);
安全性
此crate使用不安全代码以提高性能。它已经通过miri进行了广泛的模糊测试,以确保其行为正确。
许可证
fixed_heap
根据您的选择在以下许可证下双许可:
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Apache许可证,版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
。
您的贡献
除非您明确说明,否则根据Apache-2.0许可证定义的,您有意提交以包含在作品中并由您提交的任何贡献,都将根据上述内容双许可,不附加任何其他条款或条件。