tinyvec
有时,需要一些像 Vec
一样能够调整大小的特性,但无需进行堆分配。tinyvec 提供了以下特性:由数组或 slice 支持的矢量,该矢量支持进行静态分配或堆分配;用于跟踪使用的元素数量,如果元素使用量超过了分配额度,则会出现 panic。
use tinyvec::{array_vec, ArrayVec};
fn main() {
let mut numbers: ArrayVec<[u32; 5]> = array_vec!(42, 66);
println!("{numbers:?}");
numbers.push(7);
println!("{numbers:?}");
numbers.remove(1);
println!("{numbers:?}");
}
- 根据
tinyvec
要求,元素类型需实现初始化Default
。 - Rust Playground 中包含
tinyvec
,因此本示例将以内嵌方式正常运行。