【发布时间】:2017-07-27 12:28:29
【问题描述】:
在我的代码中,如果我调用 vector::reserve(capacity) 并分配比我实际需要的更多容量来让向量保存元素,那么在我的程序运行期间,向量是否会一直保存内存,不释放资源和成本?如果是这样,那不是那种内存浪费吗?
我是否可以冒险尝试将储备容量降低到向量的预期大小,这是否会使程序运行得更健壮并且可能更快?
这会降低内存不足的可能性吗?
我在手机上运行代码,计算负载很高,所以还是需要考虑内存开销。
【问题讨论】:
-
是的,它将始终具有保留的内存量,除非向量的实际大小超出此范围并且它将像往常一样重新分配。至于您的其他问题,由您决定。
-
填充向量后,您可以随时shrink the capacity to fit the size。