rust 迭代器的 position() 和 rposition() 之间有什么区别,有什么原因吗?

问题描述

所以我浏览了迭代器函数(因为它们很酷),我注意到有两个函数似乎在做完全相同的事情,除了一个需要 ExactSizeIterator 其他没有。

使用一个函数而不使用另一个函数的用例是什么?

解决方法

  • position 从头开始​​,一直向前直到找到匹配的元素,并返回其位置。这不需要知道总共有多少个元素,因此 Iterator 就足够了。
  • rposition 从末尾开始,向后移动直到找到匹配的元素,然后返回其位置(从头开始!)。因为位置是从迭代器的开头返回的(可以认为它可以用作切片索引),所以它需要确切知道迭代器中有多少个元素,因此需要 ExactSizeIterator