w3resource

Rust Vector sorting & slicing

Rust Vectors, Arrays, and Slices: Exercise-3 with Solution

Witre a Rust program that creates a vector of random integers. Sort the vector in ascending order and slice it to get a sub-vector containing the top 3 elements. Print the sub-vector.

Sample Solution:

Rust Code:

use rand::prelude::*; // Import the necessary traits for random number generation

fn main() {
    // Create a vector to store random integers
    let mut numbers: Vec = Vec::new(); // Declare an empty vector to store integers

    // Initialize the random number generator
    let mut rng = thread_rng(); // Create a random number generator instance

    // Generate random integers and add them to the vector
    for _ in 0..10 {
        // Generate a random integer between 1 and 100
        let num = rng.gen_range(1..=100); // Use the gen_range method to generate random numbers within a range
        numbers.push(num); // Add the generated number to the vector
    }

    // Sort the vector in ascending order
    numbers.sort(); // Use the sort method to sort the vector

    // Slice the vector to get a sub-vector containing the top 3 elements
    let top_three = &numbers[numbers.len() - 3..]; // Slice the vector from the third last element to the end

    // Print the sub-vector containing the top 3 elements
    println!("Top three elements: {:?}", top_three); // Print the sub-vector using debug formatting
}

Output:

Top three elements: [70, 91, 92]

Explanation:

Here is a brief explanation of the above Rust code:

  • use rand::prelude::*;: This line imports the necessary traits for random number generation from the 'rand' crate.
  • fn main() { ... }: This line defines the main function, which is the entry point of the Rust program.
  • let mut numbers: Vec<i32> = Vec::new();: This line declares an empty vector named numbers to store integers.
  • let mut rng = thread_rng();: This line creates an instance of the random number generator.
  • for _ in 0..10 { ... }: This line starts a loop to generate 10 random integers.
  • let num = rng.gen_range(1..=100);: This line generates a random integer between 1 and 100 using the "gen_range()" method.
  • numbers.push(num);: This line adds the generated random number to the vector numbers.
  • numbers.sort();: This line sorts the vector 'numbers' in ascending order using the sort method.
  • let top_three = &numbers[numbers.len() - 3..];: This line slices the vector to get a sub-vector containing the top 3 elements.
  • println!("Top three elements: {:?}", top_three);: This line prints the sub-vector containing the top 3 elements using debug formatting.

Rust Code Editor:

Previous: Rust Vector manipulation & slicing.
Next: Rust Array access guide.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/rust/collections_and_data_structures/rust-vectors-arrays-slices-exercise-3.php