首页 > 编程语言 > 详细

RustLang-切片(Vector)排序

时间:2021-06-09 18:03:34      阅读:22      评论:0      收藏:0      [点我收藏+]

RustLang - 切片(Vector)排序

整数 Vector 排序 你想对整数类型的动态数组 vector 进行排序。

///
/// 整数 Vector 排序
/// 你想对整数类型的动态数组 vector 进行排序。
fn main() {
    let mut vec = vec![1, 5, 10, 2, 15];
    println!("  排序前:    {:?}", vec);
    // vec.sort();
    vec.sort_unstable();
    println!("  排序后:    {:?}", vec);

    assert_eq!(vec, vec![1, 2, 5, 10, 15]);
    // 模板代码
    println!("Hello, world!");
}

浮点数 Vector 排序 你想对浮点类型的动态数组 vector 进行排序。

///
/// 浮点数 Vector 排序
/// 你想对浮点类型的动态数组 vector 进行排序。
///
fn main() {
    let mut vec = vec![1.1, 1.15, 5.5, 1.123, 2.0];
    println!("  排序前:    {:?}", vec);
    vec.sort_by(|a, b| a.partial_cmp(b).unwrap());
    println!("  排序后:    {:?}", vec);

    assert_eq!(vec, vec![1.1, 1.123, 1.15, 2.0, 5.5]);
    
    // 模板代码
    println!("Hello, world!");
}

结构体 Vector 排序 你想对结构体类型的动态数组 vector 进行排序。

///
/// 结构体 Vector 排序
/// 你想对结构体类型的动态数组 vector 进行排序。
///
#[derive(Debug, Eq, Ord, PartialEq, PartialOrd)]
struct Person {
    name: String,
    age: u32,
}

impl Person {
    pub fn new(name: &str, age: u32) -> Self {
        Self {
            name: name.to_string(),
            age,
        }
    }
}

fn main() {
    let mut people = vec![
        Person::new("Zhang", 23),
        Person::new("Liu", 60),
        Person::new("Wang", 1)
    ];

    println!("  排序前:        {:?}", people);
    people.sort();
    println!("  排序后:        {:?}", people);

    people.sort_by(|a, b| b.age.cmp(&a.age));
    println!("  排序后(age):   {:?}", people);


    // 模板代码
    println!("Hello, world!");
}

RustLang-切片(Vector)排序

原文:https://www.cnblogs.com/skylei/p/14866681.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!