7 个稳定版本

使用旧的 Rust 2015

3.0.0 2017年6月16日
2.0.4 2017年6月7日
2.0.3 2016年3月17日
2.0.2 2016年2月10日
1.0.0 2015年11月17日

1055算法

Download history • Rust 包仓库 83/week @ 2024-03-13 • Rust 包仓库 45/week @ 2024-03-20 • Rust 包仓库 35/week @ 2024-03-27 • Rust 包仓库 45/week @ 2024-04-03 • Rust 包仓库 29/week @ 2024-04-10 • Rust 包仓库 48/week @ 2024-04-17 • Rust 包仓库 77/week @ 2024-04-24 • Rust 包仓库 44/week @ 2024-05-01 • Rust 包仓库 45/week @ 2024-05-08 • Rust 包仓库 65/week @ 2024-05-15 • Rust 包仓库 110/week @ 2024-05-22 • Rust 包仓库 79/week @ 2024-05-29 • Rust 包仓库 80/week @ 2024-06-05 • Rust 包仓库 82/week @ 2024-06-12 • Rust 包仓库 84/week @ 2024-06-19 • Rust 包仓库 52/week @ 2024-06-26 • Rust 包仓库

305 每月下载量
fuzzy_match 中使用

MIT 许可证

19KB
325

sliding_windows

此包提供了一种 Iterator 适配器,它产生由包装迭代器返回的元素上的“滑动窗口”。

值得注意的是,它不会复制元素,这使得代码相对高效。

因此,它略微违反了迭代器协议。不能同时有两个窗口访问数据。这在运行时进行检查。

支持存储是 Vec,因此此迭代器适配器不适用于非常大的窗口(>20个元素或非常大的元素)。

我很乐意接受一个 PR 来实现使用 VecDeque 或类似功能的相同功能,请参阅此 问题

安装

将其添加到您的 Cargo.toml

[dependencies]
sliding_windows = "2.0"

示例

extern crate sliding_windows;
use sliding_windows::{IterExt, Storage};

let mut storage: Storage<u32> = Storage::new(3);

for x in (0..5).sliding_windows(&mut storage) {
    println!("{:?}", x);
}

// This outputs:
// [0, 1, 2]
// [1, 2, 3]
// [2, 3, 4]

有关更多示例,请参阅文档

其他语言/包中的此功能

无运行时依赖