std.heap
tier: alloc · since: std-0.2 stability: experimental
二叉堆(比较器注入;小顶;函数式返回新 List,宪章 3) 口径:cmp(a,b) < 0 表示 a 优先级高(在前);push/pop 每次重建 O(n) 拷贝 + O(log n) 筛(文档化,v0 接受);堆序:cmp(xs[i], xs[父]) ≥ 0
pub fn
| Signature | Returns | Description |
|---|---|---|
heap_new[T]() |
List[T] |
空堆(即空 List) |
heap_push[T](xs: List[T], v: T, cmp: fn(T, T) -> I32) |
List[T] |
入堆:拷贝 + 追加 + 上滤;返回新 List,原值不变 |
heap_pop[T](xs: List[T], cmp: fn(T, T) -> I32) |
List[T] |
出堆(移除堆顶):空堆原样返回;尾换顶 + 下滤;返回新 List |
heap_peek[T](xs: List[T]) |
Option[T] |
堆顶 |
heap_sorted[T](xs: List[T], cmp: fn(T, T) -> I32) |
List[T] |
依次弹出收集(升序 = cmp 序;不动原 List) |
heap_get_i(xs: List[I32], dft: I32) |
I32 |
发射面安全 Option 助手(match 形;C13a) |
heap_has_i(xs: List[I32]) |
Bool |
堆空判定(peek Some/None 的布尔形;发射面判别助手) |