Подтвердить что ты не робот

Как узнать размер/длину (в байтах) std::vector?

У меня есть вектор, и я хочу записать и прочитать его в файл, но определить логический размер вектора с помощью оператора sizeof невозможно.

Итак, что мне делать?

4b9b3361

Ответ 1

С++ std::vector имеет метод size(), который возвращает свой размер.

EDIT: как я понял, теперь вам нужно вычислить память, которую использует данный вектор. Вы не можете использовать sizeof для этого, поскольку вектор использует динамическую память и сохраняет только указатель динамического массива, содержащего его элементы. Таким образом, моим лучшим предложением было бы умножить память на каждый элемент, требуемый количеством элементов. Обратите внимание, что это снова не будет работать, если объекты сохраняют указатель на некоторые динамически выделенные объекты - вам придется снова вычислить их размеры отдельно.

Нет простого способа вычислить размер вектора в байтах в С++, о котором я знаю.