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

Метод shrink_to_fit

Метод shrink_to_fit класса string уменьшает зарезервированную ёмкость строки (capacity) до её текущего размера (size). Это позволяет освободить память, которая была выделена заранее, но в данный момент не используется. Метод не принимает параметров и не изменяет содержимое строки.

Метод не гарантирует, что ёмкость станет ровно равной размеру: реализация может оставить некоторый запас. Тем не менее, вызов shrink_to_fit является запросом на уменьшение памяти и обычно приводит к перераспределению буфера строки.

Синтаксис

str.shrink_to_fit()

Пример

Давайте создадим строку, зарезервируем под неё много памяти, а затем вызовем shrink_to_fit и посмотрим, как изменится ёмкость:

#include <iostream> #include <string> using namespace std; int main() { string str = "abcde"; str.reserve(100); cout << "size: " << str.size() << endl; cout << "capacity before: " << str.capacity() << endl; str.shrink_to_fit(); cout << "capacity after: " << str.capacity() << endl; return 0; }

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

"size: 5" "capacity before: 100" "capacity after: 5"

Пример

Давайте удалим часть символов из строки, а затем вызовем shrink_to_fit, чтобы освободить память, которая больше не нужна:

#include <iostream> #include <string> using namespace std; int main() { string str = "12345"; str.reserve(50); str.erase(2); cout << "str: " << str << endl; cout << "size: " << str.size() << endl; cout << "capacity before: " << str.capacity() << endl; str.shrink_to_fit(); cout << "capacity after: " << str.capacity() << endl; return 0; }

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

"str: "12"" "size: 2" "capacity before: 50" "capacity after: 2"

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

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