3 个版本
| 0.1.2 | 2023年6月29日 |
|---|---|
| 0.1.1 | 2023年5月26日 |
| 0.1.0 | 2023年5月26日 |
#1665 在 算法
80KB
1.5K SLoC
任何时间都可以无需准备进行切片的双端队列。
LinearDeque 与 VecDeque
标准 VecDeque 使用环形缓冲区。它要求调用 make_contiguous 方法以确保所有队列内容都可以在一个切片中引用。 make_contiguous 只能在可变实例上调用。
此库提供的 LinearDeque 使用线性缓冲区,保持所有内容连续,并允许在任何时候都有包含所有内容的切片,即使队列不可变。
lib.rs:
任何时间都可以无需准备进行切片的双端队列。
LinearDeque 与 VecDeque
切片
标准 VecDeque 使用环形缓冲区。它要求调用 make_contiguous 方法以确保所有队列内容都可以在一个切片中引用。 make_contiguous 只能在可变实例上调用。
此库提供的 LinearDeque 使用线性缓冲区,保持所有内容连续,并允许在任何时候都有包含所有内容的切片,即使队列不可变。
内存使用
通过使用环形缓冲区,标准 VecDeque 分配的所有空闲内存都可以用于前后两端添加的元素。
使用线性缓冲区,每个LinearDeque的端都有其预留内存,因此它通常比VecDeque使用更多的内存。