gpt4 book ai didi

c++ - 减少STL vector 的容量

转载 作者:太空宇宙 更新时间:2023-11-04 14:00:34 24 4
gpt4 key购买 nike

有没有办法减少 vector 的容量?

我的代码将值插入到 vector 中(事先不知道它们的数量),并且完成后, vector 仅用于读取操作。

我想我可以创建一个新 vector ,使用大小和拷贝执行 .reseve()项目,但我真的不喜欢额外的复制操作。

PS:我不喜欢可移植的解决方案,只要它适用于 gcc。

最佳答案

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

用另一个 vector 交换内容会交换容量。

  std::vector<T>(v).swap(v); ==> is equivalent to 

std::vector<T> tmp(v); // copy elements into a temporary vector
v.swap(tmp); // swap internal vector data

Swap() 只会改变内部数据结构。

关于c++ - 减少STL vector 的容量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19475130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com