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