gpt4 book ai didi

c++ - std::vector 向下调整大小

转载 作者:IT老高 更新时间:2023-10-28 12:42:17 25 4
gpt4 key购买 nike

C++ 标准似乎没有说明两者对容量的副作用 resize(n) , 与 n < size() , 或 clear() .

它确实对 push_back 的摊余成本做出了声明和 pop_back - O(1)

我可以设想一种实现通常的容量变化ala CLRS 算法(例如,放大时加倍,减小时减半 size to < capacity()/4)。(Cormen Lieserson Rivest Stein)

谁有任何实现限制的引用?

最佳答案

调用resize()较小的尺寸对 vector 的容量没有影响.它不会释放内存。

vector 中释放内存的标准习惯用法是swap()它带有一个空的临时vector : std::vector<T>().swap(vec); .如果要向下调整大小,则需要从原始 vector 复制到新的本地临时 vector ,然后将生成的 vector 与原始 vector 交换。

更新: C++11 添加了成员​​函数 shrink_to_fit() 为此,减少 capacity() 的请求不具约束力。至size() .

关于c++ - std::vector 向下调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1155693/

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