Емкость вектора в Rust
Емкость отличается от длины: длина говорит, сколько значений лежит сейчас, а емкость - сколько мест уже выделено под будущий рост без переноса всего блока в новую область памяти.
У пустого только что созданного списка емкость может быть нулем или небольшим числом. После дописывания элементов запас обычно увеличивают заранее, чтобы не делать это на каждом шаге.
Сравним длину и емкость у короткого набора:
let nums = vec![10, 20, 30];
println!("{}", nums.len());
println!("{}", nums.capacity());
Длина равна 3. Емкость на экране
не меньше длины и часто больше нее. У пустого
списка с заданным типом длина нулевая, емкость
смотрят отдельно:
let nums: Vec<i32> = Vec::new();
println!("{}", nums.len());
println!("{}", nums.capacity());
Дан следующий вектор:
let nums = vec![1, 2];
Выведите длину и емкость nums.
Объявите пустой изменяемый список целых
чисел, допишите в него 10 и выведите
длину и емкость.
Скажите, чем емкость отличается от длины списка.