Прежде всего, фактический «пробел» составляет 32 байта, поскольку адреса имеют шестнадцатеричные значения 0x1b9f080 - 0x1b9f060 = 0x20 = 32
.
Это размер элемента vector
, который в данном случае равен std::string
.Наиболее важно, std::string
- это класс, и его размер приблизительно определяется размерами его членов, как и любой другой класс.
Каковы действительные члены std::string
и какой размер он имеет в результатезависит от реализации стандартной библиотеки, которую вы используете в настоящее время.Однако самое важное то, что размер std::string
совсем не зависит от длины фактической строки, которую он хранит, поскольку он содержит только указатель на нее и сама строка находитсяв другом месте (в куче).