#迭代器 #循环 #第N次 #迭代 #元素 #停止 #标准

cycle-to-nth

将迭代器循环到第n次迭代

1个稳定版本

1.0.0 2020年7月28日

#9#第N次

自定义许可

5KB
77

cycle-to-nth

此包提供了一种简单的迭代器和关联适配器,可以将迭代器循环到第n个元素。这是标准库中Cycle迭代器的一个包装,略有修改,在达到第n次迭代时停止循环。

这在需要短(或长度未知)迭代器,但需要正好n个元素的迭代器时非常有用。例如,自定义数组/容器的初始化,扩展/截断样本集以输入到信号处理算法中,等等。

示例

以下示例将一个较小的迭代器(只有一个元素)扩展到一个较长的迭代器(对同一元素进行5次迭代)

let v = vec![1u32];
assert_eq!(v.iter().cycle_to_nth(5).sum::<u32>(), 5u32);

以下示例将一个较长的迭代器截断为正好5个元素的迭代器。

let v = vec![1u32; 10];
assert_eq!(v.iter().cycle_to_nth(5).sum::<u32>(), 5u32);

无运行时依赖