In a typical implementation, std::shared_ptr
holds only two pointers.
So 1000 shared pointers take up 1000 * 2 * sizeof(pointer)
bytes of memory.
Note: The size of the control block (which is implementation dependent) and the size of the object the shared pointer shares ownership of are not part of this.