Я просто возился и узнавал о векторах, а также о структурах, и в какой-то момент я попытался вывести размер вектора в байтах. Здесь код:
#include <iostream>
#include <vector>
struct Foo{
std::vector<int> a;
};
int main()
{
using std::cout; using std::endl;
Foo* f1 = new Foo;
f1->a.push_back(5);
cout << sizeof(f1->a) << endl;
cout << sizeof(f1->a[0]) << endl;
delete[] f1;
}
Выходной сигнал 24
и 4
.
Очевидно, что вторая строка напечатана 4, потому что это размер int. Но почему именно другое значение 24? Оставляет ли вектор 24 байта памяти? Спасибо!