For a long time I was using std::vector and std::shared_ptr hand in hand. Recently I started using std::shared_ptr when
I would suggest reviewing your design with a view to establish a clear owner of those object. This is the absence of clear ownership that lead people to use shared smart pointers.
Bjarne Stroustrup recommends using smart pointers only as a last resort. His recommendations (best to worst) are:
See Bjarne Stroustrup - The Essence of C++: With Examples in C++84, C++98, C++11, and C++14 at 0:37:40.