Метод shrink_to_fit
Метод shrink_to_fit уменьшает емкость вектора
до его текущей длины. Если емкость больше длины,
лишняя память освобождается. Метод не принимает
параметров и не возвращает значения. После вызова
емкость вектора становится равной его длине, однако
это не гарантируется спецификацией - реализация
может сохранить большую емкость, если это выгодно.
Метод полезен, когда вектор больше не будет расти, и вы хотите освободить неиспользуемую память.
Синтаксис
vec.shrink_to_fit();
Пример
Давайте создадим вектор с запасом емкости, а затем уменьшим его емкость до длины:
fn main()
{
let mut vec = Vec::with_capacity(10);
vec.push(1);
vec.push(2);
vec.push(3);
println!("len: {}, capacity: {}", vec.len(), vec.capacity());
vec.shrink_to_fit();
println!("len: {}, capacity: {}", vec.len(), vec.capacity());
}
Результат выполнения кода:
len: 3, capacity: 10
len: 3, capacity: 3
Пример
Давайте удалим элементы из вектора, а затем уменьшим его емкость:
fn main()
{
let mut vec = vec![1, 2, 3, 4, 5];
println!("len: {}, capacity: {}", vec.len(), vec.capacity());
vec.truncate(2);
vec.shrink_to_fit();
println!("len: {}, capacity: {}", vec.len(), vec.capacity());
println!("{:?}", vec);
}
Результат выполнения кода:
len: 5, capacity: 5
len: 2, capacity: 2
[1, 2]
Смотрите также
-
метод
capacity,
который возвращает текущую емкость вектора -
метод
reserve,
который резервирует дополнительную память для вектора -
метод
with_capacity,
который создает вектор с заданной емкостью -
метод
len,
который возвращает количество элементов в векторе