Suppose you create a vector and fill it with elements:
vector <int> MyVector;
for (int i=0 ; i<n ; ++i)
Afterwards, you check the vector's size and capacity and notice that the capacity is 20 but the size (i.e., the number of existing elements) is smaller, say 15. How can you trim the capacity of the vector to match its actual size? There's no function to trim the capacity, but you can copy it to a temporary vector and swap, with something like:
vector < X > tmp(MyVector);
The vector temp has the same number of elements that MyVector has. By sapping it with the original vector MyVector, the capacity of MyVector changes accordingly. Consequently, MyVector's capacity matches its size and there are no unused slots of memory.