vector缩减容量
在C++标准库容器vector的容量是不会自动的缩减的,也就是说删除元素操作,其引用、指针、迭代器也会继续有效。那么当在一个较大的vector中删除了大量的元素之后,其实际的size比较小,而其capacity比较大,如果对空间比较敏感,希望vector的容量能够缩小一些,这时可以使用下面的技巧来实现。std::vector<T> tmp(v);tmp.swap(v);或者std::vector<
·
在C++标准库容器vector的容量是不会自动的缩减的,也就是说删除元素操作,其引用、指针、迭代器也会继续有效。那么当在一个较大的vector中删除了大量的元素之后,其实际的size比较小,而其capacity比较大,如果对空间比较敏感,希望vector的容量能够缩小一些,这时可以使用下面的技巧来实现。
std::vector<T> tmp(v);
tmp.swap(v);
或者
std::vector<T>(v1).swap(v1);
该操作的时间复杂度是O(size)。
(完)
更多推荐
已为社区贡献1条内容
所有评论(0)