Working with C++ vectors allocated as smart pointers but passed as references. Demonstrate as well the use of std::make_shared.