5 个版本 (3 个重大更改)
0.3.0 | 2022年11月13日 |
---|---|
0.2.0 | 2021年12月6日 |
0.1.1 | 2021年2月17日 |
0.1.0 | 2021年2月8日 |
0.0.0 | 2021年1月18日 |
#1911 in 数据结构
在 2 crate 中使用
27KB
443 行
stride
步长切片类型。
入门指南
此 crate 提供了一种类似切片的 Stride<T, S>
类型,其中元素在内存中以常量 S
的间隔排列。
例如,给定底层切片 &[1, 2, 3, 4, 5, 6]
,元素 &[1, 3, 5]
是一个步长为 2 的步长切片。此 crate 利用 const generics 在编译时提供步长值 S
,因此步长切片没有运行时内存开销;Stride
占用的空间与切片相同。
为 Stride
实现了许多类似切片的操作,包括迭代和索引。方法名称与切片类型类似。
use stride::Stride;
// The underlying data.
let data = &mut [1, 2, 7, 4, 5, 6];
// Create a strided slice with a stride of `2` referring to
// elements `1`, `7`, and `5`.
let stride = Stride::<_, 2>::new_mut(data);
assert_eq!(stride.len(), 3);
// We can use indexing to view values ..
assert_eq!(stride[0], 1);
assert_eq!(stride[1..3], &[7, 5]);
// .. or modify them.
stride[1] = 3;
assert_eq!(stride, &[1, 3, 5]);
assert_eq!(data, &[1, 2, 3, 4, 5, 6]);
有关更多信息,请参阅 API 文档。
许可协议
许可协议为以下之一
- Apache 许可证 2.0(《LICENSE-APACHE》或http://apache.ac.cn/licenses/LICENSE-2.0》)
- MIT 许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT》)
任选其一。