我有一个元组的向量,其中包含整数,我想按每个元组的第二个元素对它进行排序:
我有一个包含整数元组的向量,并希望按照每个元组的第二个元素对其进行排序:
fn main() {
let mut tuple_list2: Vec<(u16, u16)> = vec![(1, 5), (0, 17), (8, 2)];
tuple_list2.sort_by(|a, b| a.1.cmp(b.1));
}
编译器报错是因为b.1
是一个u16
而不是对一个u16
的引用(&u16
)。我可以通过引用b.1
来解决这个问题。fn main() {
let mut tuple_list2: Vec<(u16, u16)> = vec![(1, 5), (0, 17), (8, 2)];
tuple_list2.sort_by(|a, b| a.1.cmp(&b.1));
}
我不明白为什么我要这样做,特别是因为我也不需要引用a.1
。
cmp
的特征,可能会有所帮助:Ord::cmp(&self, other: &Self)
。 - Aurora0001Ord::cmp(&a.1, &b.1)
。 - bluss