#iterator #sorting #elements #merge #order #ordered #input

merging-iterator

一个迭代器,按顺序返回两个独立排序迭代器的元素

4个稳定版本

使用旧的Rust 2015

1.3.0 2020年11月18日
1.2.0 2019年9月15日
1.1.0 2018年10月14日
1.0.0 2018年10月14日

算法中排名#1234

每月40次下载

MIT/Apache

11KB
186

合并迭代器

Rust Crates.io docs.rs License License

此crate实现了一个迭代器,它接受两个独立的迭代器,并在它们各自排序的情况下按顺序返回它们的元素。

重要提示:此迭代器仅在输入迭代器已经排序的情况下才能正常工作,因为只有每个迭代器的相应next元素会被比较。没有检查来验证此属性。

示例

extern crate merging_iterator;

use merging_iterator::MergeIter;
let a = vec![0, 2, 4, 6, 8];
let b = vec![1, 3, 5, 7, 9];
let merger = MergeIter::new(a, b);
assert_eq!(
    vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
    merger.collect::<Vec<_>>()
);

您也可以像这样合并两个以上的排序迭代器

extern crate merging_iterator;

use merging_iterator::MergeIter;
let a = vec![1, 4, 7];
let b = vec![2, 5, 8];
let c = vec![3, 6, 9];
let merger = MergeIter::new(
    MergeIter::new(a, b),
    c
);
assert_eq!(
    vec![1, 2, 3, 4, 5, 6, 7, 8, 9],
    merger.collect::<Vec<_>>()
);

许可证

merging-iterator许可证为以下之一,您可选

无运行时依赖