排序然后在一行中删除整数的锈向量
我想排序然后删除一个i32in rust 的向量:
fn main() {
let mut vec = vec![5,5,3,3,4,4,2,1,2,1];
vec.sort().collect().dedup();
println!("{:?}", vec);
}
这段代码不起作用,但如果这dedup部分是这样完成的,那就没问题了:
vec.sort();
vec.dedup();
我该怎么做sort,并dedup在我的例子一条线?
回答
使用itertools,您可以执行以下操作:
use itertools::Itertools;
fn main() {
let mut vec = vec![5,5,3,3,4,4,2,1,2,1];
vec = vec.into_iter().sorted().dedup().collect();
println!("{:?}", vec);
}
不过,这真的取决于您为什么认为需要单衬纸。如果实际上是因为您需要一个表达式,那么您可以使用一个块:
vec = {
vec.sort();
vec.dedup();
vec
};