Does clearing a vector affect its capacity?
c++, capacity, size, std, vector
Solution
No, it doesn't. The capacity of a vector never decreases. That isn't mandated by the standard but it's so both in standard library implementations of VC++ and g++. In order to set the capacity just enough to fit the size, use the famous swap trick
vector<T>().swap(foo);
In C++11 standard, you can do it more explicitly:
foo.shrink_to_fit();
Problem
I instantiate an `std::vector foo(1000)`. `foo.size()` is now 1000 and `foo.capacity()` is also 1000. If I clear the vector with `foo.clear()`, the `size()` is now 0, but what is the `capacity()`? Does the standard say anything about that?