Menu
Coddy logo textTech

Создание вектора

Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 8 из 66.

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

Первый метод использует Vec::new() для создания пустого вектора, в который вы сможете добавить элементы позже:

let mut numbers = Vec::new();

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

let mut numbers: Vec<i32> = Vec::new();

Второй метод использует макрос vec![] для создания вектора с начальными значениями:

let numbers = vec![1, 2, 3, 4, 5];

Макрос vec![] более удобен, когда вы знаете начальные значения. Rust может автоматически определить тип на основе предоставленных вами значений, поэтому аннотация типа не требуется. Этот вектор содержит пять целых чисел и готов к немедленному использованию.

Макрос vec![] также поддерживает синтаксис повторения для создания вектора, заполненного одним и тем же значением. Используйте vec![value; n], чтобы создать вектор из n элементов, каждый из которых равен value:

let zeros = vec![0; 5];   // [0, 0, 0, 0, 0]
let tens = vec![10; 3];   // [10, 10, 10]

Это особенно полезно, когда вы хотите создать вектор определенного размера, заданного во время выполнения, например, на основе пользовательского ввода:

let n = 4;
let data = vec![10; n];   // [10, 10, 10, 10]

Оба подхода создают один и тот же тип вектора — выбор зависит от того, есть ли у вас начальные значения или вы планируете создавать вектор постепенно.

challenge icon

Задание

Легко

Вы получите на вход число, представляющее количество элементов, которое должен содержать вектор. Прочитайте входные данные, преобразуйте их в целое число и создайте вектор с таким количеством элементов, где каждый элемент равен числу 10.

Требования:

  • Прочитать входные данные и преобразовать их в целое число
  • Создать вектор с помощью макроса vec![]
  • Вектор должен содержать указанное количество элементов
  • Каждый элемент должен иметь значение 10
  • Вывести каждый элемент на отдельной строке

Входные данные: Одно целое число, представляющее количество элементов

Выходные данные: Вывести каждый элемент вектора на отдельной строке

Попробуйте сами

use std::io;

fn main() {
    // Чтение входных данных
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let n: usize = input.trim().parse().expect("Invalid input");
    
    // TODO: Напишите свой код ниже
    // Создайте вектор из n элементов, каждый из которых имеет значение 10
    
    
    // Выведите каждый элемент на отдельной строке
    
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Logic & Flow