Инициализация вектора диапазоном значений — обычная задача в программировании на Rust. Он позволяет быстро заполнить вектор последовательностью чисел или другими элементами. В этой статье мы рассмотрим несколько методов эффективного заполнения вектора Rust диапазоном значений. Каждый метод будет сопровождаться примерами кода, иллюстрирующими его использование и характеристики производительности.
Метод 1: использование цикла for
Самый простой и понятный способ заполнить вектор диапазоном значений — использовать цикл for. Вот пример:
fn fill_vector_with_range(start: u32, end: u32) -> Vec<u32> {
let mut vector = Vec::new();
for i in start..=end {
vector.push(i);
}
vector
}
fn main() {
let range_start = 1;
let range_end = 10;
let filled_vector = fill_vector_with_range(range_start, range_end);
println!("{:?}", filled_vector);
}
Метод 2: использование функций iter() и Collect()
Функция iter()
предоставляет итератор по диапазону, который можно собрать в вектор с помощью collect()
метод. Вот пример:
fn fill_vector_with_range(start: u32, end: u32) -> Vec<u32> {
(start..=end).collect()
}
fn main() {
let range_start = 1;
let range_end = 10;
let filled_vector = fill_vector_with_range(range_start, range_end);
println!("{:?}", filled_vector);
}
Метод 3: Использование vec! macro
Макрос vec!
позволяет кратко инициализировать вектор диапазоном значений. Вот пример:
fn main() {
let range_start = 1;
let range_end = 10;
let filled_vector: Vec<u32> = vec![range_start..=range_end].concat();
println!("{:?}", filled_vector);
}
Метод 4: использование функции map()
Вы также можете использовать функцию map()
для создания вектора, применяя преобразование к каждому элементу диапазона. Вот пример:
fn fill_vector_with_range(start: u32, end: u32) -> Vec<u32> {
(start..=end).map(|x| x * 2).collect()
}
fn main() {
let range_start = 1;
let range_end = 10;
let filled_vector = fill_vector_with_range(range_start, range_end);
println!("{:?}", filled_vector);
}
В этой статье мы рассмотрели несколько методов заполнения вектора Rust диапазоном значений. Мы рассмотрели использование цикла for, функции iter()
с collect()
, макроса vec!
и функции map()
. В зависимости от вашего конкретного варианта использования вы можете выбрать наиболее подходящий метод эффективной и лаконичной инициализации векторов в Rust.