Smart Pointer
A smart pointer is an ADT that simulates a pointer while providing added features, such as automatic memory management or bounds checking
Link:
Types of Smart Pointers C++ libraries provide implementations of smart pointers in the following types:
unique_ptrUnique Pointershared_ptrShared Pointerweak_ptrWeak Pointerauto_ptr
To use them, make sure to include the <memory> library
#include <memory>