一、sort
let mut v = vec![4,3,3,1,2];
println!("{:#?}",v);
v.sort();
println!("{:#?}",v);
结果:
// 排序前结果
[
4,
3,
3,
1,
2,
]
// 排序后结果
[
1,
2,
3,
3,
4,
]
二、sort_by
// 结构体
#[derive(Debug)]
pub struct Preson{
name: String,
age: i64,
gender: String,
}
// 排序代码
let mut v = Vec::new();
let p1 = Preson{
name: "hh1".to_string(),
age: 18,
gender: "men".to_string(),
};
let p2 = Preson{
name: "hh2".to_string(),
age: 16,
gender: "women".to_string(),
};
let p3 = Preson{
name: "hh3".to_string(),
age: 15,
gender: "men".to_string(),
};
let p4 = Preson{
name: "hh4".to_string(),
age: 17,
gender: "women".to_string(),
};
v.push(p1);
v.push(p2);
v.push(p3);
v.push(p4);
println!("{:#?}",v);
v.sort_by(|v1, v2| v1.age.cmp(&v2.age));
println!("{:#?}",v);
结果:
[
Preson {
name: "hh1",
age: 18,
gender: "men",
},
Preson {
name: "hh2",
age: 16,
gender: "women",
},
Preson {
name: "hh3",
age: 15,
gender: "men",
},
Preson {
name: "hh4",
age: 17,
gender: "women",
},
]
[
Preson {
name: "hh3",
age: 15,
gender: "men",
},
Preson {
name: "hh2",
age: 16,
gender: "women",
},
Preson {
name: "hh4",
age: 17,
gender: "women",
},
Preson {
name: "hh1",
age: 18,
gender: "men",
},
]