Collections 如何将迭代器推送到现有向量(或任何其他集合)?

Collections 如何将迭代器推送到现有向量(或任何其他集合)?,collections,rust,iterator,Collections,Rust,Iterator,查看文档或Rust 0.12,我看到了将多个值推送到一个已经存在的Vec: fn push_all(&mut self, other: &[T]) 但是,如果我有一个迭代器,我认为使用:vector.push\u all(it.collect().as\u ref())是没有效率的。有没有更有效的方法?您可以使用Vecextend获取实现intoierator(包括所有迭代器类型)的任何类型的值,并通过迭代器返回的所有元素扩展Vec: vector.extend(it) 由于

查看文档或Rust 0.12,我看到了将多个值推送到一个已经存在的
Vec

fn push_all(&mut self, other: &[T])

但是,如果我有一个迭代器,我认为使用:
vector.push\u all(it.collect().as\u ref())
是没有效率的。有没有更有效的方法?

您可以使用
Vec
extend
获取实现
intoierator
(包括所有迭代器类型)的任何类型的值,并通过迭代器返回的所有元素扩展
Vec

vector.extend(it)
由于
extend
属于
extend
特性,因此它也适用于许多其他集合类型