Course Content
C++ Smart Pointers
C++ Smart Pointers
Introduction to Unique Pointers
To create a std::unique_ptr
you can use the std::make_unique
. It is a function that provides a safe and efficient way to create unique pointers.
It's a great alternative to using the new/delete
and new[]/delete[]
operators, which can make code more susceptible to memory-related issues.
make_unique
// Using `std::make_unique` to create a unique pointer to a vector of integers std::unique_ptr<std::vector<int>> p_unique_vector = std::make_unique<std::vector<int>>();
The std::make_unqiue
allocates the dynamic resource and returns a unique pointer that owns it. When the unique pointer goes out of scope, the resource is automatically deallocated.
new_unique_ptr
// Insecure way to create a unique pointer for a vector of integers. std::unique_ptr<std::vector<int>> p_unique_vector(new std::vector<int>());
The p_unique_vector
vector in the above code will still be automatically destroyed when the unique pointer goes out of scope. However, for maximum exception safety and better code practices, always prefer using std::make_unique
.
Thanks for your feedback!