首页 > 解决方案 > 排序然后在一行中删除一个整数的锈向量

问题描述

我想对生锈的向量进行排序然后去重i32

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

标签: rust

解决方案


使用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
};

推荐阅读