Метод with_capacity
Метод with_capacity создает новую пустую строку
String с заранее выделенной емкостью в байтах.
Параметром метод принимает число - желаемую емкость будущей
строки. Это позволяет избежать повторных перевыделений
памяти при постепенном добавлении символов.
Строка создается пустой, но буфер памяти под нее уже выделен. Длина строки при этом равна нулю, а емкость соответствует переданному значению.
Синтаксис
String::with_capacity(capacity)
Пример
Давайте создадим строку с емкостью 10 байт и выведем ее длину и емкость:
fn main()
{
let s = String::with_capacity(10);
println!("length: {}", s.len());
println!("capacity: {}", s.capacity());
}
Результат выполнения кода:
length: 0
capacity: 10
Пример
Давайте создадим строку с запасом емкости и добавим
в нее текст через push_str:
fn main()
{
let mut s = String::with_capacity(100);
s.push_str("abcde");
println!("{}", s);
println!("capacity: {}", s.capacity());
}
Результат выполнения кода:
"abcde"
capacity: 100
Емкость осталась прежней, так как добавленный текст полностью поместился в заранее выделенный буфер.
Смотрите также
-
метод
new,
который создает новую пустую строку String -
метод
capacity,
который возвращает текущую емкость строки -
метод
reserve,
который резервирует дополнительную емкость -
метод
shrink_to_fit,
который уменьшает емкость до длины строки