我正在将许多对象合并到包含渲染数据(网格)的单个向量中.这个向量被清除并重新填充每个帧(好吧,差不多).
问题是,在我的情况下,清除然后再次保留向量大小会对性能产生巨大影响,因为clear()也可能会改变容量.
换句话说,我需要控制向量的容量何时发生变化.我想保留旧容量很长一段时间,直到我决定自己是时候改变它了.
我看到两个选择:
更新
另外,如果调用调整大小(10),然后调用调整大小(5)(仅用于说明,将实际数字乘以数百万),该怎么办?
稍后调用resize(5)会导致向量重新分配吗?
Oli*_*liv 10
实际上,clear成员函数保持向量容量不变.它只会破坏(调用析构函数)每个向量元素并将向量大小设置为0.
在这种情况下,在每次迭代时,我会调用clear()以销毁所有向量元素,然后调用成员函数reserve(size),在向量容量太小的情况下,将至少将其增加size.
| 归档时间: |
|
| 查看次数: |
9198 次 |
| 最近记录: |