Since people are chiming in on the efficency of using pointers.
If you’re considering using a std::vector and if updates are few and you often iterate over your collection and it’s a non polymorphic type storing object “copies” will be more efficent since you’ll get better locality of reference.
Otoh, if updates are common storing pointers will save the copy/relocation costs.