Перебор векторов в Rust: методы и примеры

Я могу помочь вам написать статью в блоге об итерации векторов в Rust. Вот несколько методов, которые вы можете использовать, а также примеры кода:

  1. Использование цикла for:

    fn main() {
       let vector = vec![1, 2, 3, 4, 5];
    
       for element in &vector {
           println!("Element: {}", element);
       }
    }

    Этот метод использует цикл for для перебора вектора, напрямую обращаясь к каждому элементу.

  2. Использование метода iter():

    fn main() {
       let vector = vec![1, 2, 3, 4, 5];
    
       for element in vector.iter() {
           println!("Element: {}", element);
       }
    }

    Метод iter()создает итератор над вектором, позволяя вам перебирать его элементы.

  3. Использование метода iter_mut()для изменяемой итерации:

    fn main() {
       let mut vector = vec![1, 2, 3, 4, 5];
    
       for element in vector.iter_mut() {
           *element *= 2;
       }
    
       println!("Updated vector: {:?}", vector);
    }

    Метод iter_mut()возвращает изменяемый итератор, позволяющий изменять элементы вектора во время итерации.

  4. Использование метода into_iter()для использования вектора:

    fn main() {
       let vector = vec![1, 2, 3, 4, 5];
    
       for element in vector.into_iter() {
           println!("Element: {}", element);
       }
    }

    Метод into_iter()использует вектор, передавая право владения его элементами итератору. Это может быть полезно, если впоследствии вектор вам больше не понадобится.

  5. Использование метода enumerate()для получения индекса и элемента:

    fn main() {
       let vector = vec![1, 2, 3, 4, 5];
    
       for (index, element) in vector.iter().enumerate() {
           println!("Index: {}, Element: {}", index, element);
       }
    }

    Метод enumerate()возвращает итератор кортежей, где каждый кортеж содержит индекс и элемент вектора.

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