Menu
Coddy logo textTech

Что такое вектор?

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

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

Вектор, записываемый как Vec<T>, — это тип динамического массива в Rust. Символ T представляет тип элементов, которые будет содержать вектор — например, Vec<i32> для целых чисел или Vec<String> для строк. В отличие от массивов, где необходимо заранее указывать точное количество элементов, векторы могут быть изначально пустыми, а элементы могут добавляться или удаляться во время выполнения программы.

Вот когда стоит выбрать вектор вместо массива:

// Массив — фиксированный размер, известный на этапе компиляции
let scores = [85, 92, 78, 90]; // всегда ровно 4 элемента

// Вектор — динамический размер, может меняться во время выполнения
let mut grades = Vec::new(); // начинается пустым, может расти

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

quiz iconПроверьте себя

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

quiz iconПроверьте себя

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

quiz iconПроверьте себя

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

Шпаргалка

Векторы (Vec<T>) — это динамические коллекции, которые могут увеличиваться и уменьшаться во время выполнения программы, в отличие от массивов, имеющих фиксированный размер, известный на этапе компиляции.

T представляет тип элементов, которые будет содержать вектор:

Vec<i32>    // вектор целых чисел
Vec<String> // вектор строк

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

let mut grades = Vec::new(); // начинается пустым, может расти

Сравнение с массивами:

// Массив — фиксированный размер
let scores = [85, 92, 78, 90]; // всегда ровно 4 элемента

// Вектор — динамический размер
let mut grades = Vec::new(); // может изменяться во время выполнения

Используйте векторы, когда вы заранее не знаете, сколько элементов вам понадобится, например, для хранения пользовательского ввода, чтения данных из файлов или создания списков, которые меняются в зависимости от логики программы.

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

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

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

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