Метод 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,
который добавляет строку в конец текущей строки