Поскольку vector<>
сам по себе является классом, который осуществляет собственное управление динамической памятью, использование оператора sizeof
для запроса его размера не очень важно. Я подозреваю, что вы обнаружите, что значение, которое вы вычисляете выше, всегда будет 12.
Вы можете спросить вектор, сколько элементов он содержит, используя метод .size()
. Кроме того, метод .capacity()
скажет вам, сколько элементов имеет фактически выделенной памяти (даже если они еще не используются).
Помните, что sizeof
вычисляется во время компиляции , поэтому он не может знать, сколько элементов вставлено в контейнер позже, во время выполнения.