首页  >  文章  >  后端开发  >  如何将 std::vector 缩小到其实际大小:交换技巧解释

如何将 std::vector 缩小到其实际大小:交换技巧解释

Barbara Streisand
Barbara Streisand原创
2024-10-26 07:05:03420浏览

How to Shrink a std::vector to its Actual Size: The Swap Trick Explained

缩小 std::Vector 的大小:交换技巧

当保留空间没有时减少 std::vector 的容量如果需要更长的时间,可以采用 Scott Meyers 在他的《Effective STL》一书中推荐的“交换技巧”。其工作原理如下:

  1. 创建具有所需容量的新向量:
vector<Person> new_persons(size_of_new_vector);
  1. 交换内容原始向量和新向量的数量:
new_persons.swap(persons);

执行交换后,原始向量,人,将被“缩小以适应”,这意味着它将仅占用所需的内存它当前持有的元素数量。

该技术利用了向量的复制构造函数,它仅为正在复制的元素分配内存,有效减少了原始向量的多余容量。

以上是如何将 std::vector 缩小到其实际大小:交换技巧解释的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn