Arm*_*yan 25
不,它没有.向量的容量永远不会减少.这不是标准规定的,但在VC++和g ++的标准库实现中都是如此.为了将容量设置得足以适合大小,请使用着名的交换技巧
vector<T>().swap(foo);
Run Code Online (Sandbox Code Playgroud)
在C++ 11标准中,您可以更明确地执行此操作:
foo.shrink_to_fit();
Run Code Online (Sandbox Code Playgroud)
要清除向量并尽可能少地使用容量,请使用交换技巧:
std::vector<T>().swap(foo);
Run Code Online (Sandbox Code Playgroud)
这会创建一个空的向量,与其交换内部foo
,然后销毁临时向量,摆脱曾经属于foo
和离开的元素,foo
就像它是新创建的一样.
归档时间: |
|
查看次数: |
9407 次 |
最近记录: |