Эффективные способы инициализации векторов Rust заданной длины

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

Метод 1: использование макроса vec!
Самый простой способ инициализировать вектор заданной длины — использовать макрос vec!. Этот макрос позволяет создать вектор с повторяющимися значениями. Вот пример:

let length = 5;
let value = 0;
let vec = vec![value; length];

Метод 2: Использование синтаксиса vec![T; N]
Rust предоставляет синтаксис, позволяющий создавать вектор с указанной длиной и значениями по умолчанию для каждого элемента. Вот пример:

let length = 5;
let vec: Vec<i32> = vec![0; length];

Метод 3: использование метода Vec::with_capacity
Если вы заранее знаете длину вектора, вы можете использовать метод Vec::with_capacity, чтобы выделить необходимую память для вектор. Хотя вектор будет инициализирован с нулевой длиной, он будет иметь необходимую емкость. Вот пример:

let length = 5;
let mut vec: Vec<i32> = Vec::with_capacity(length);
vec.resize(length, 0);

Метод 4: использование метода iter()с collect()
Другой способ инициализировать вектор заданной длины — использовать iter()вместе с методом collect(). Вот пример:

let length = 5;
let vec: Vec<i32> = (0..length).collect();

Метод 5: использование цикла
Если вам нужен больший контроль над процессом инициализации, вы можете использовать цикл для заполнения вектора значениями. Вот пример:

let length = 5;
let mut vec: Vec<i32> = Vec::new();
for _ in 0..length {
    vec.push(0);
}