rust vec排序

一、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",
    },
]
posted @   hziwei  阅读(373)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示