Iterators in Rust are the objects that implement the Iterator trait and can be used to iterate over a collection of values.

The Iterator trait defines several methods, including .next(), which returns the next value in the iteration, and size_hint(), which hints at the number of remaining elements.

 

Here’s an example of using an iterator to iterate over the elements of a vector:

let mut v = vec![1, 2, 3]; for i in v.iter() { 
    println!("{}", i); 
}

This will print the elements of the vector, one per line.

Iterators are a fundamental concept in Rust and are used in many places, including for-loops, Iterator::collect() method, and the Iterator::map() method. They can be created manually or by using functions or methods that return iterators, such as .iter() on a collection.

 


Method to iterate over a vector in Rust

In Rust, iteration refers to repeatedly executing a block of code for each element in a collection. Depending on your specific needs, there are several ways to iterate over a vector in Rust.

 

There are several ways to iterate over a vector in Rust:

1. Using a for loop:

let mut vec = vec![1, 2, 3]; 
for element in vec { 
    println!("{}", element); 
}

 

2. Using iter() and .next():

let vec = vec![1, 2, 3]; 
let mut iterator = vec.iter(); 
while let Some(element) = iterator.next() { 
    println!("{}", element); 
}

 

3. Using iter_mut() and .next():

let mut vec = vec![1, 2, 3]; l
let mut iterator = vec.iter_mut(); 
while let Some(element) = iterator.next() { 
    *element *= 2; 
}

 

4. Using enumerate() and a for loop:

let vec = vec![1, 2, 3]; 
for (index, element) in vec.enumerate() { 
    println!("Element {} is {}", index, element); 
}

 

It’s also possible to use the Iterator trait and the .map() method to perform an operation on each element of the vector and collect the results in a new vector:

let vec = vec![1, 2, 3]; 
let doubled: Vec<i32> = vec.into_iter().map(|x| x * 2).collect(); 
println!("{:?}", doubled); // [2, 4, 6]

 

You can choose depending on your specific needs and preferences. Consider consulting the documentation for the Iterator trait in the Rust standard library for more information.

 

About the Author: Vasili Pascal

Dev Team Lead @ TryDirect && Software Engineer @ Optimum Web

Share This Post, Choose Your Platform!

Request a Consultation