tinyvec

有时,需要一些像 Vec 一样能够调整大小的特性,但无需进行堆分配。tinyvec 提供了以下特性:由数组或 slice 支持的矢量,该矢量支持进行静态分配或堆分配;用于跟踪使用的元素数量,如果元素使用量超过了分配额度,则会出现 panic。

  1. use tinyvec::{array_vec, ArrayVec};
  2. fn main() {
  3. let mut numbers: ArrayVec<[u32; 5]> = array_vec!(42, 66);
  4. println!("{numbers:?}");
  5. numbers.push(7);
  6. println!("{numbers:?}");
  7. numbers.remove(1);
  8. println!("{numbers:?}");
  9. }
  • 根据 tinyvec要求,元素类型需实现初始化 Default
  • Rust Playground 中包含 tinyvec,因此本示例将以内嵌方式正常运行。