【问题标题】:Is there a built-in way to compare two iterators?有没有比较两个迭代器的内置方法?
【发布时间】:2015-08-12 23:36:40
【问题描述】:

我编写了以下函数来逐个元素地比较两个迭代器。但是,如果我可以重用标准库中的某些内容,那就太好了。

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));
}

【问题讨论】:

    标签: iterator rust


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 2021-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-03
        • 1970-01-01
        • 1970-01-01
        • 2019-11-29
        相关资源
        最近更新 更多