微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。