在C++标准库容器vector的容量是不会自动的缩减的,也就是说删除元素操作,其引用、指针、迭代器也会继续有效。那么当在一个较大的vector中删除了大量的元素之后,其实际的size比较小,而其capacity比较大,如果对空间比较敏感,希望vector的容量能够缩小一些,这时可以使用下面的技巧来实现。

std::vector<T> tmp(v);
tmp.swap(v);

或者

std::vector<T>(v1).swap(v1);

该操作的时间复杂度是O(size)。

(完)

相关文章:

  • 2021-06-06
  • 2021-07-07
  • 2022-12-23
  • 2021-10-10
  • 2021-08-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-21
  • 2022-12-23
相关资源
相似解决方案