111

I need to iterate a Vec including the position for each iterated element. I'm sure this is already in the API but I cannot see it.

I need something like this:

fn main() {
    let v = vec![1; 10];
    for (pos, e) in v.iter() {
        // do something here
    }
}
Shepmaster
  • 388,571
  • 95
  • 1,107
  • 1,366
bitloner
  • 1,581
  • 5
  • 12
  • 13

1 Answers1

170

You can use the Iterator::enumerate method:

fn main() {
    let v = vec![1; 10];
    for (pos, e) in v.iter().enumerate() {
        println!("Element at position {}: {:?}", pos, e);
    }
}

Playground

Shepmaster
  • 388,571
  • 95
  • 1,107
  • 1,366