我有一个大的 BitVec,我需要找到精确长度的设置/未设置位序列(即 n 个连续设置/未设置位)。我怎样才能做到这一点?我已经尝试过Iterator
s 和for
循环,但我无法将它包装成一个通用函数。
更新:根据要求,提供更多信息。问题是我还没有找到方法
- 有效地找到序列的位置
- 把它变成一个通用函数
我的意思是,我最初研究的是形式fn find_sequence<A: PartialEq<A>>(v: &[A], value: A, how_many: usize) ...
。不幸的是,还不能返回迭代器(因为闭包),所以这是第一个问题。第二,无法有效地找到职位,是我不清楚我必须执行什么才能实现我想要的。最初,我使用enumerate
返回位置值元组,然后scan
能够找到序列(即if x == val
,更新状态等)。然后我尝试使用 for 循环,但我很清楚,我无法将它变成一个通用函数(因为how_many
,它不允许为每个位置添加精确数量的 if 语句,x[0] == val
即x[1] == val
.. .)。