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

Метод swap_with_slice

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

Синтаксис

slice.swap_with_slice(other)

Пример

Давайте обменяем элементы двух векторов vec![1, 2, 3] и vec![4, 5, 6]:

fn main() { let mut a = vec![1, 2, 3]; let mut b = vec![4, 5, 6]; a.swap_with_slice(&mut b); println!("{:?}", a); println!("{:?}", b); }

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

[4, 5, 6] [1, 2, 3]

Пример

Давайте обменяем две части одного и того же вектора, используя split_at_mut:

fn main() { let mut v = vec![1, 2, 3, 4, 5, 6]; let (left, right) = v.split_at_mut(3); left.swap_with_slice(right); println!("{:?}", v); }

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

[4, 5, 6, 1, 2, 3]

Пример

Давайте обменяем элементы двух срезов строк "abcde" и "12345":

fn main() { let mut a = vec!["a", "b", "c", "d", "e"]; let mut b = vec!["1", "2", "3", "4", "5"]; a.swap_with_slice(&mut b); println!("{:?}", a); println!("{:?}", b); }

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

["1", "2", "3", "4", "5"] ["a", "b", "c", "d", "e"]

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

  • метод swap,
    который меняет местами два элемента внутри одного среза
  • метод split_at,
    который делит срез на два по указанному индексу
  • метод copy_from_slice,
    который копирует элементы из одного среза в другой
  • метод clone_from_slice,
    который клонирует элементы из одного среза в другой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить