在 Rust 中存储连续数据?
作者都帮你整理好了:
使用 Rust 中的数组
[T; N]
.Slice
&[T]
or&mut [T]
, 可以方便的 split.Boxed slice
Box<[T]>
.Vec
. 长度和内容都可以变化,这可能是我们最常用的方式.smallvec
, 第三方 crate, 当元素较少时可以存储在 stack 上.arrayvec
, 第三方 crate, 如名字所述, 底层是用 Array 来存储的,因此长度不能动态增长. 但是数据可以存储在 data segment, stack 或 heap上.tinyvec
, 第三方 crete, 可以100%替代smallvec
和arrayvec
的一个crate.VecDeque
, 标准库中的std::collections::VecDeque
, 是一个可增长的ring buffer实现的双端队列.可以高效的pop
和p