New
Оператор часто сбивает меня с толку, и использование его может привести к утечке памяти, если я забуду использовать delete
. Каждый раз, когда мне приходится выделять массив объектов, не зная его длины во время компиляции, я просто использую std::vector
. Какой смысл использовать new
?Зачем использовать новый оператор вместо std :: vector?
Кроме того, зачем мне нужно использовать оператор new
для выделения пространства только для одного экземпляра объекта?
Хорошо ... Это действительно зависит от того, хотите ли вы выделить его в стек или в кучу. «Почему существуют молотки, когда я могу использовать пилы для вырубки древесины?» – byxor
Std :: vector использует новый оператор для выделения памяти. –
Использование std :: vector является хорошим (не используйте 'new' для этих случаев использования)! Если он дойдет до полиморфизма, вам может понадобиться выделенный указатель, но вы можете избежать новых, используя std :: unique_ptr (или std :: shared_ptr, если вам нужно). –