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

Метод with_capacity

Метод with_capacity создаёт новый пустой вектор с заранее выделенной ёмкостью. Параметром метод принимает число, которое указывает, сколько элементов вектор сможет хранить без перевыделения памяти. В отличие от метода new, который создаёт вектор с нулевой ёмкостью, with_capacity позволяет избежать многократных перевыделений памяти при добавлении большого количества элементов. Длина созданного вектора при этом остаётся равной нулю.

Синтаксис

Vec::with_capacity(capacity)

Пример

Давайте создадим вектор с ёмкостью 5 и проверим его длину и ёмкость:

fn main() { let v: Vec<i32> = Vec::with_capacity(5); println!("len: {}", v.len()); println!("capacity: {}", v.capacity()); }

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

len: 0 capacity: 5

Пример

Давайте создадим вектор с ёмкостью 5 и добавим в него несколько элементов:

fn main() { let mut v: Vec<i32> = Vec::with_capacity(5); v.push(1); v.push(2); v.push(3); println!("{:?}", v); println!("len: {}", v.len()); println!("capacity: {}", v.capacity()); }

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

[1, 2, 3] len: 3 capacity: 5

Пример

Давайте сравним ёмкость вектора, созданного через new, и вектора, созданного через with_capacity:

fn main() { let v1: Vec<i32> = Vec::new(); let v2: Vec<i32> = Vec::with_capacity(10); println!("v1 capacity: {}", v1.capacity()); println!("v2 capacity: {}", v2.capacity()); }

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

v1 capacity: 0 v2 capacity: 10

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

  • метод new,
    который создаёт новый пустой вектор
  • метод capacity,
    который возвращает текущую ёмкость вектора
  • метод reserve,
    который резервирует дополнительную ёмкость
  • метод shrink_to_fit,
    который уменьшает ёмкость до текущей длины
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить