Bird
Raised Fist0
Rustprogramming~5 mins

Vector vs array comparison in Rust - Quick Revision & Key Differences

Choose your learning style10 modes available
Recall & Review
beginner
What is a Vector in Rust?
A Vector (Vec<T>) is a growable, heap-allocated list type. It can change size during runtime and stores elements contiguously in memory.
Click to reveal answer
beginner
What is an Array in Rust?
An Array ([T; N]) is a fixed-size collection of elements stored on the stack. Its size is known at compile time and cannot change.
Click to reveal answer
beginner
How do you declare a Vector and an Array in Rust?
Vector: <code>let v = Vec::new();</code> or <code>let v = vec![1, 2, 3];</code><br>Array: <code>let a = [1, 2, 3];</code>
Click to reveal answer
beginner
Can you change the size of a Vector or an Array after creation?
You can change the size of a Vector by adding or removing elements.
You cannot change the size of an Array after it is created; its size is fixed.
Click to reveal answer
intermediate
Where are Vectors and Arrays stored in memory in Rust?
Arrays are stored on the stack because their size is fixed.
Vectors store their elements on the heap, but the Vector variable itself is on the stack.
Click to reveal answer
Which Rust type allows you to change the number of elements after creation?
AArray ([T; N])
BTuple
CVector (Vec<T>)
DSlice
What is the size characteristic of a Rust array?
AFixed size known at compile time
BDynamic size at runtime
CSize depends on heap allocation
DSize changes with push/pop
Where are the elements of a Rust Vector stored?
AOn the stack
BOn the heap
CIn static memory
DIn CPU registers
Which Rust type requires its size to be known at compile time?
AString
BVector
CHashMap
DArray
How do you create a Vector with initial elements 1, 2, and 3 in Rust?
Avec![1, 2, 3]
B[1, 2, 3]
CVector::new(1, 2, 3)
DVec::from(1, 2, 3)
Explain the main differences between a Vector and an Array in Rust.
Think about size flexibility and memory location.
You got /4 concepts.
    Describe a situation where you would prefer using an Array over a Vector in Rust.
    Consider memory and performance constraints.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which of the following statements correctly describes the main difference between a Rust array and a Rust vector?
      easy
      A. Arrays have a fixed size known at compile time, while vectors can grow or shrink at runtime.
      B. Vectors have a fixed size known at compile time, while arrays can grow or shrink at runtime.
      C. Both arrays and vectors have fixed sizes and cannot change after creation.
      D. Arrays are only used for strings, while vectors are used for numbers.

      Solution

      1. Step 1: Understand array size behavior

        Arrays in Rust have a fixed size that must be known when the program is compiled.
      2. Step 2: Understand vector size behavior

        Vectors are dynamic and can grow or shrink during program execution.
      3. Final Answer:

        Arrays have a fixed size known at compile time, while vectors can grow or shrink at runtime. -> Option A
      4. Quick Check:

        Array fixed size, Vector dynamic size = C [OK]
      Hint: Remember: arrays fixed size, vectors flexible size [OK]
      Common Mistakes:
      • Confusing which type is fixed or dynamic
      • Thinking vectors are fixed size
      • Assuming arrays can grow dynamically
      2. Which of the following is the correct syntax to declare a vector of integers in Rust?
      easy
      A. let v = (1, 2, 3);
      B. let v = [1, 2, 3];
      C. let v = vector(1, 2, 3);
      D. let v = vec![1, 2, 3];

      Solution

      1. Step 1: Identify vector creation syntax

        In Rust, vectors are created using the macro vec![...] with square brackets and exclamation mark.
      2. Step 2: Compare options

        let v = vec![1, 2, 3]; uses vec![1, 2, 3], which is correct. let v = [1, 2, 3]; is an array, C and D are invalid syntax for vectors.
      3. Final Answer:

        let v = vec![1, 2, 3]; -> Option D
      4. Quick Check:

        Vector syntax uses vec! macro = A [OK]
      Hint: Vectors use vec! macro with square brackets [OK]
      Common Mistakes:
      • Using array syntax instead of vec! macro
      • Missing exclamation mark in vec! macro
      • Using parentheses instead of brackets
      3. What will be the output of the following Rust code?
      let arr = [10, 20, 30];
      let vec = vec![10, 20, 30];
      println!("{} {}", arr.len(), vec.len());
      medium
      A. 3 0
      B. 3 3
      C. 0 3
      D. Compilation error

      Solution

      1. Step 1: Check array length

        The array arr has 3 elements, so arr.len() returns 3.
      2. Step 2: Check vector length

        The vector vec also has 3 elements, so vec.len() returns 3.
      3. Final Answer:

        3 3 -> Option B
      4. Quick Check:

        Both lengths are 3 = B [OK]
      Hint: Both array and vector have length 3 here [OK]
      Common Mistakes:
      • Assuming vector length is zero initially
      • Confusing array and vector length methods
      • Expecting compilation error due to different types
      4. Identify the error in this Rust code snippet:
      let arr = [1, 2, 3];
      arr.push(4);
      medium
      A. Arrays do not have a push method; only vectors do.
      B. The array is missing a semicolon after declaration.
      C. The push method requires a mutable reference to the array.
      D. The code is correct and will compile.

      Solution

      1. Step 1: Check array methods

        Arrays in Rust have fixed size and do not support the push method.
      2. Step 2: Understand push method usage

        The push method is only available for vectors, which are growable.
      3. Final Answer:

        Arrays do not have a push method; only vectors do. -> Option A
      4. Quick Check:

        push() only works on vectors = D [OK]
      Hint: Only vectors support push(), arrays do not [OK]
      Common Mistakes:
      • Trying to push to arrays
      • Thinking arrays can be resized
      • Ignoring method availability on types
      5. You want to store a list of user scores that can change size during the program. Which Rust type should you choose and why?
      hard
      A. Use a tuple because it can hold multiple types of scores.
      B. Use an array because it is faster and fixed size is better for scores.
      C. Use a vector because it can grow or shrink as scores are added or removed.
      D. Use a string because scores are numbers stored as text.

      Solution

      1. Step 1: Analyze data size requirement

        The list of user scores can change size, so a fixed size container is not suitable.
      2. Step 2: Choose appropriate Rust type

        Vectors are growable and flexible, making them ideal for dynamic lists like scores.
      3. Final Answer:

        Use a vector because it can grow or shrink as scores are added or removed. -> Option C
      4. Quick Check:

        Dynamic list needs vector = A [OK]
      Hint: Dynamic size needs vector, fixed size needs array [OK]
      Common Mistakes:
      • Choosing array for dynamic data
      • Confusing tuples with lists
      • Using string for numeric data
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard