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

Метод reserve

Метод reserve резервирует дополнительную ёмкость в строке String, чтобы избежать повторных перевыделений памяти при последующих вставках. Параметром метод принимает количество байт, которое нужно зарезервировать дополнительно к текущей длине строки. Если текущей ёмкости уже достаточно, вызов метода не приводит к выделению памяти.

Синтаксис

string.reserve(additional)

Пример

Давайте создадим пустую строку и зарезервируем в ней место под 10 байт:

fn main() { let mut s = String::new(); s.reserve(10); println!("{}", s.capacity()); }

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

10

Пример

Давайте создадим строку "abcde" и зарезервируем в ней дополнительно 5 байт:

fn main() { let mut s = String::from("abcde"); s.reserve(5); println!("{}", s.capacity()); }

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

10

Пример

Давайте зарезервируем место в строке, а затем добавим в неё данные через push_str:

fn main() { let mut s = String::new(); s.reserve(10); s.push_str("abcde"); println!("{}", s); println!("{}", s.capacity()); }

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

"abcde" 10

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

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