Метод split_off
Метод split_off разделяет вектор на два
по указанному индексу. Он отрезает все элементы,
начиная с позиции at, и возвращает их
в виде нового вектора. Исходный вектор сохраняет
только элементы, находящиеся до указанного индекса.
Параметром метод принимает индекс, с которого
начинается отсечение. Если индекс больше длины
вектора, метод паникует.
Синтаксис
vec.split_off(at)
Пример
Давайте разделим вектор vec![1, 2, 3, 4, 5]
по индексу 2:
fn main()
{
let mut vec = vec![1, 2, 3, 4, 5];
let res = vec.split_off(2);
println!("{:?}", vec);
println!("{:?}", res);
}
Результат выполнения кода:
[1, 2]
[3, 4, 5]
Пример
Если указать индекс 0, то исходный вектор
станет пустым, а все элементы перейдут в новый вектор:
fn main()
{
let mut vec = vec!["a", "b", "c", "d", "e"];
let res = vec.split_off(0);
println!("{:?}", vec);
println!("{:?}", res);
}
Результат выполнения кода:
[]
["a", "b", "c", "d", "e"]
Пример
Если указать индекс, равный длине вектора, то исходный вектор останется без изменений, а новый вектор будет пустым:
fn main()
{
let mut vec = vec![1, 2, 3, 4, 5];
let res = vec.split_off(5);
println!("{:?}", vec);
println!("{:?}", res);
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
[]