MST

星途 面试题库

面试题:Rust 向量排序:实现自定义排序

在Rust中,给定一个包含结构体的向量,结构体有两个字段:`name`(字符串)和`score`(整数)。请实现一个函数,将这个向量按照`score`从高到低排序,如果`score`相同,则按照`name`的字典序排序。请给出完整的Rust代码实现。
23.8万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
struct Student {
    name: String,
    score: i32,
}

fn sort_students(students: &mut Vec<Student>) {
    students.sort_by_key(|student| (-student.score, &student.name));
}

你可以使用以下方式测试这个函数:

fn main() {
    let mut students = vec![
        Student { name: "Alice".to_string(), score: 85 },
        Student { name: "Bob".to_string(), score: 90 },
        Student { name: "Charlie".to_string(), score: 85 },
    ];
    sort_students(&mut students);
    for student in students {
        println!("Name: {}, Score: {}", student.name, student.score);
    }
}