РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
267 of 1245 menu

Метод as_mut_slice

Метод as_mut_slice возвращает изменяемый срез (&mut [T]) всех элементов вектора. Он позволяет работать с содержимым вектора как с обычным срезом, изменяя элементы напрямую. Метод не принимает параметров и возвращает изменяемую ссылку на срез.

Синтаксис

vec.as_mut_slice()

Пример

Давайте получим изменяемый срез вектора и изменим первый элемент через него:

fn main() { let mut v = vec![1, 2, 3, 4, 5]; let slice = v.as_mut_slice(); slice[0] = 10; println!("{:?}", v); }

Результат выполнения кода:

[10, 2, 3, 4, 5]

Пример

Давайте изменим все элементы вектора, умножив каждый на два:

fn main() { let mut v = vec![1, 2, 3, 4, 5]; for elem in v.as_mut_slice() { *elem *= 2; } println!("{:?}", v); }

Результат выполнения кода:

[2, 4, 6, 8, 10]

Пример

Давайте передадим изменяемый срез вектора в функцию, которая меняет элементы местами:

fn swap_ends(slice: &mut [i32]) { let len = slice.len(); slice.swap(0, len - 1); } fn main() { let mut v = vec![1, 2, 3, 4, 5]; swap_ends(v.as_mut_slice()); println!("{:?}", v); }

Результат выполнения кода:

[5, 2, 3, 4, 1]

Смотрите также

  • метод as_slice,
    который возвращает неизменяемый срез элементов вектора
  • метод get_mut,
    который возвращает изменяемую ссылку на элемент по индексу
  • метод len,
    который возвращает количество элементов в векторе
  • метод push,
    который добавляет элемент в конец вектора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить