Does clearing a vector affect its capacity?
问题 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? 回答1: 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>()