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.h
12// 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.h
12// 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
.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 5.56
Introduction to Unique Pointers
Stryg for at vise menuen
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.h
12// 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.h
12// 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
.
Tak for dine kommentarer!