PaulS:
What does empty() actually do? I thought empty() dumped all the data in the vector object as it's primary purpose. That it might return how much data it dumped doesn't seem to be a reason to use it.
empty() returns a boolean; checking if the vector is empty or not i.e. size zero. It does not empty its contents, I believe clear() does.