#双端 #双端队列 #切片 #连续 #连续内存 #队列 #线性

linear-deque

任何时间都可以无需准备进行切片的双端队列

3 个版本

0.1.2 2023年6月29日
0.1.1 2023年5月26日
0.1.0 2023年5月26日

#1665算法

MIT 许可证

80KB
1.5K SLoC

任何时间都可以无需准备进行切片的双端队列。

LinearDequeVecDeque

标准 VecDeque 使用环形缓冲区。它要求调用 make_contiguous 方法以确保所有队列内容都可以在一个切片中引用。 make_contiguous 只能在可变实例上调用。

此库提供的 LinearDeque 使用线性缓冲区,保持所有内容连续,并允许在任何时候都有包含所有内容的切片,即使队列不可变。


lib.rs:

任何时间都可以无需准备进行切片的双端队列。

LinearDequeVecDeque

切片

标准 VecDeque 使用环形缓冲区。它要求调用 make_contiguous 方法以确保所有队列内容都可以在一个切片中引用。 make_contiguous 只能在可变实例上调用。

此库提供的 LinearDeque 使用线性缓冲区,保持所有内容连续,并允许在任何时候都有包含所有内容的切片,即使队列不可变。

内存使用

通过使用环形缓冲区,标准 VecDeque 分配的所有空闲内存都可以用于前后两端添加的元素。

使用线性缓冲区,每个LinearDeque的端都有其预留内存,因此它通常比VecDeque使用更多的内存。

无运行时依赖