首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一个内置的方式来比较两个迭代器?

有没有一个内置的方式来比较两个迭代器?
EN

Stack Overflow用户
提问于 2015-05-30 00:07:55
回答 2查看 7.9K关注 0票数 16

我编写了下面的函数来比较两个迭代器,逐个元素。不过,如果我能在标准库中重用一些东西,那就太好了。

代码语言:javascript
复制
fn iter_eq<A, B, T, U>(mut a: A, mut b: B) -> bool
where
    A: Iterator<Item = T>,
    B: Iterator<Item = U>,
    T: PartialEq<U>,
{
    loop {
        match (a.next(), b.next()) {
            (Some(ref a), Some(ref b)) if a == b => continue,
            (None, None) => return true,
            _ => return false,
        }
    }
}

fn main() {
    let a = vec![1, 2, 3].into_iter();
    let b = vec![1, 2, 3].into_iter();

    assert!(iter_eq(a, b));
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-30 00:14:21

还有Iterator::eq以及其他各种比较函数(ltne等)。

票数 25
EN

Stack Overflow用户

发布于 2015-05-30 08:41:58

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30540822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档