Effective STL, by Scott Meyers, Item 17: Use the swap trick to trim excess capacity.
vector<Person>(persons).swap(persons);
After that, persons is “shrunk to fit”.
This relies on the fact that vector‘s copy constructor allocates only as much as memory as needed for the elements being copied.