Сортировка вектора в Rust: методы и примеры кода

Чтобы отсортировать вектор в Rust, вы можете использовать различные методы, предоставляемые стандартной библиотекой. Вот некоторые из наиболее часто используемых методов вместе с примерами кода:

  1. Использование метода sort:

    fn main() {
    let mut vec = vec![5, 2, 4, 1, 3];
    vec.sort();
    println!("{:?}", vec); // Output: [1, 2, 3, 4, 5]
    }
  2. Использование метода sort_byс собственной функцией сравнения:

    fn main() {
    let mut vec = vec![5, 2, 4, 1, 3];
    vec.sort_by(|a, b| a.cmp(b)); // or vec.sort_by(std::cmp::Ord::cmp);
    println!("{:?}", vec); // Output: [1, 2, 3, 4, 5]
    }
  3. Использование метода sort_by_keyс функцией извлечения ключа:

    fn main() {
    let mut vec = vec!["apple", "banana", "cherry"];
    vec.sort_by_key(|s| s.len());
    println!("{:?}", vec); // Output: ["apple", "cherry", "banana"]
    }
  4. Использование метода sort_unstableдля нестабильной сортировки:

    fn main() {
    let mut vec = vec![5, 2, 4, 1, 3];
    vec.sort_unstable();
    println!("{:?}", vec); // Output: [1, 2, 3, 4, 5]
    }
  5. Использование метода sort_by_cached_keyс функцией извлечения кэшированного ключа:

    fn main() {
    let mut vec = vec!["apple", "banana", "cherry"];
    vec.sort_by_cached_key(|s| s.len());
    println!("{:?}", vec); // Output: ["apple", "cherry", "banana"]
    }

Это всего лишь несколько примеров сортировки векторов в Rust. Каждый метод имеет свои преимущества и варианты использования, поэтому вы можете выбрать подходящий, исходя из ваших конкретных требований.