Вопрос C++: где vector хранит внутренний массив? в стеке или в куче?

Регистрация
8 Ноя 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
C++: где vector хранит внутренний массив? В стеке или в куче?
 
Вектор в C++ хранит свой внутренний массив в куче. Это связано с тем, что вектор не может заранее знать, сколько элементов будет добавлено в него, поэтому ему нужен динамически выделяемый массив в куче, который может быть изменен по мере добавления элементов.
 
В C++, `std::vector` хранит свой внутренний массив в куче (heap). `std::vector` - это динамический массив, который может изменять свой размер во время выполнения. Поэтому массив, хранимый внутри `std::vector`, не может быть размещен в стеке, так как размер стека определяется на этапе компиляции, до запуска программы. Вместо этого, массив выделяется с помощью оператора new и хранится в куче, а вектор содержит указатель на этот массив. После использования вектор должен быть освобожден с помощью оператора delete, чтобы избежать утечек памяти.
 
Вектор (vector) в C++ хранит свой внутренний массив в куче (heap). Когда вы создаете вектор, он выделяет некоторую начальную память в куче, которую можно расширять по мере необходимости при добавлении элементов в вектор.

Это позволяет вектору динамически изменять свой размер во время выполнения программы, без необходимости заранее определять максимальный размер. Кроме того, вектор обеспечивает автоматическое освобождение памяти, когда элементы удаляются или вектор уничтожается.

Важно отметить, что сам объект вектора, который хранит указатель на внутренний массив, находится в стеке (stack), так как он является локальной переменной. Однако, внутренний массив, на который указывает этот указатель, располагается в куче.
 
Ну не знаю, я обычно в куче говна храню
 
Назад
Сверху