group_by迭代器适配器有什么缺点

时间:2016-02-27 02:40:48

标签: group-by iterator rust

想象一下(key,value)对上的迭代器,其中键不是唯一的。创建一个迭代器适配器会有什么缺点,它将迭代器拆分成许多“流”,任何后续的适配器都可以在其上运行?

我正在想象以下伪代码会为每个键返回第10个元素:

let res: HashMap<key_type, value_type> =
    my_input_stream.iter()
    .group_by(|(key, value)| key)
    .skip(9)
    .take(1)
    .collect();

我知道itertools'group_by,但它只适用于连续的组。我说的是当团体不连续的时候会发生的事情。我认为我的想法可能会遇到Rust的迭代器设计的许多问题。

更具体地说,我正在考虑的两个实现是:

  • 生成许多迭代器的迭代器,有点类似于unzip。 这有一个问题,你可能无法再链接 适配器之后的适配器。 (类似于:Splitting Iterator<(A,B)> into Iterator<A> and Iterator<B>
  • 使用组键参数调用next的迭代器。 这可能需要缓冲大量数据并打破 next的签名。

0 个答案:

没有答案