#iterator #chunks #windows

无需 std itermore

🤸‍♀️ 更多迭代器适配器

9 个版本 (破坏性更新)

0.7.1 2023年12月15日
0.7.0 2023年12月15日
0.6.0 2023年11月28日
0.5.0 2022年12月4日
0.1.0 2021年10月6日

#chunks 中排名 3

Download history 113/week @ 2024-04-21 48/week @ 2024-04-28 87/week @ 2024-05-05 32/week @ 2024-05-12 130/week @ 2024-05-19 37/week @ 2024-05-26 435/week @ 2024-06-02 1653/week @ 2024-06-09 2127/week @ 2024-06-16 2612/week @ 2024-06-23 3107/week @ 2024-06-30 3177/week @ 2024-07-07 806/week @ 2024-07-14 97/week @ 2024-07-21 117/week @ 2024-07-28 174/week @ 2024-08-04

每月下载量 1,372
用于 3 个 crate

MIT/Apache

67KB
1K SLoC

itermore

Crates.io Version Docs.rs Latest Build Status

🤸‍♀️ 更多迭代器适配器。

此 crate 提供了一些有用的迭代器适配器和函数。与 itertools 不同,此 crate 为每个适配器提供了一个独立的扩展 trait。此外,每个类型的适配器都带有功能标志,因此您只需编译所需的特性。

入门

将 crate 添加到 Cargo 清单。

cargo add itermore --features full

并将扩展 traits 带入作用域。

use itermore::prelude::*;

现在您可以在任何迭代器上使用扩展方法,例如 array_windows

for [a, b, c] in iter.array_windows() {
    println!("{} {} {}", a, b, c)
}
// Outputs
//    1 2 3
//    2 3 4
//    3 4 5

建议只启用所需的特性。例如,如果您只想使用 array_combinations 适配器,您可以将以下内容添加到您的 Cargo 清单中。

[dependencies]
itermore = { version = "*", features = ["array_combinations"]}

提供的功能

方法

  • collect_array:将迭代器收集到一个数组中。
  • min_max 及其相关方法:返回迭代器的最小和最大元素。
  • next_chunk:返回迭代器的下一个 N 个元素作为数组。
  • sorted 及其相关方法:返回一个新的迭代器,其中所有元素都已排序。

适配器

  • array_chunks 返回一个迭代器,每次迭代返回迭代器的 N 个元素。
  • array_windows 返回一个迭代器,每次迭代返回长度为 N 的连续窗口。
  • array_combinations 返回一个迭代器,每次迭代返回底层迭代器中所有元素的长为 K 的组合。
  • array_combinations_with_reps 返回一个迭代器,遍历底层迭代器中所有元素重复/替换的长度为 K 的组合。
  • cartesian_product 返回两个迭代器元素集合笛卡尔积的迭代器。
  • circular_array_windows 返回长度为 N 的所有连续窗口迭代器,在末尾环绕。
  • combinations 返回底层迭代器中所有元素长度为 k 的组合迭代器。
  • combinations_with_reps 返回底层迭代器中所有元素长度为 k 的重复/替换组合迭代器。

许可证

本项目在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。

有关详细信息,请参阅 LICENSE-APACHELICENSE-MIT

依赖项