15. Векторы (Vector)
Вектор – нефиксированный по длине набор однотипных значений. Вы можете изменять длину вектора (количество элементов). Значения элементов вектора могут быть изменены и удалены.
Вектор похож на массив, но с вышеперечисленными особенностями.
Вектор создается при помощи макроса
fn main() {
let shopping: Vec<&str> = vec!["bread", "milk", "cheese", "apple", "noodles"];
println!("{:?}", shopping);
}
Общий синтаксис создания заполненного вектора:
let vector_name: Vec<Type> = vec! [value1, value2, value3];
или пустого:
let mut vector_name: Vec<Type> = Vec::new()
Сразу используем
Получение значений элементов вектора
Любое значение из вектора можно получить по его индексу указанному в квадратных скобках, начиная с нуля:
fn main() {
let shopping= vec!["bread", "milk", "cheese", "apple", "noodles"];
println!("{}", shopping[2]);
}
Перебор значений в цикле
Вектор является итерируемым объектом, поэтому можно использовать его напрямую в цикле.
fn main() {
let shopping = vec!["bread", "milk", "cheese", "apple", "noodles"];
for p in shopping {
print!("{} ", p);
}
Можно использовать цикл для прохождения вектора по индексу, но для этого нужно узнать длину вектора (количество его значений) с помощью метода
fn main() {
let shopping = vec!["bread", "milk", "cheese", "apple", "noodles"];
print!("Длина вектора: {}", shopping.len());
}
Для использования в цикле метода
Методы вектора
Мы уже знаем метод
.
Пример:
fn main() {
let mut shopping = vec!["bread", "milk", "cheese", "apple", "noodles"];
shopping[0] = "banana"; // Заменили хлеб на банан
shopping.push("cabbage"); // Добавили капусту
shopping.push("salt"); // Добавили соль
let a = shopping.pop(); // Забрали последнее значение (соль)
shopping.remove(2); // Удалили сыр
println!("{:?}", shopping);
}
fn main() {
let shopping = vec!["bread", "milk", "cheese", "apple", "noodles"];
println!("{}", shopping.contains(&"orange"));
}
Если вектор так хорош, возникает вопрос, зачем тогда использовать массивы? Массив проще и поэтому более эффективен при хранении и доступе к данным.
Для просмотра заданий и решений, а также публикации своих решений необходимо зарегистрироваться на сайте.
Всё бесплатно, мы просто хотим с вами познакомиться и понять насколько актуально то, что мы делаем.