Top.Mail.Ru
Ответы

Тип string в С++. Как он так реализован, что намного меньше расходует памяти чем массив из символов?)

Почему массив символов char[] занимает так много памяти (если использовать большой текст для хранения, потребуется на 1 символ = 1 байт, как итог: большой размер данных), а тип string не зависимо от того, сколько в нём будет текста, будет весить всего 32 байта..?

По дате
По Рейтингу
Аватар пользователя
Новичок

Размер строки надо проверять с помощью метода .size а не с помощью sizeof. Иначе вернётся размер оптимизированного буфера (32 байта).

Аватар пользователя
Просветленный

Спасибо, посмеялся

Аватар пользователя
Просветленный

Размер неправильно меряешь
Там внутри string динамическое выделение памяти (char*), а сама структура лишь указатель на этот char* хранит и может еще пару полей и все