有没有办法减少矢量的容量?
我的代码将值插入到向量中(事先不知道它们的数字),当这完成时,向量仅用于读取操作.
我想我可以创建一个新的向量,用大小做一个.reseve()并复制项目,但我真的不喜欢额外的复制操作.
PS:我不关心便携式解决方案,只要它适用于gcc.
我有一个名为OGLSHAPE的类的std :: vector.
每个形状都有一个SHAPECONTOUR结构的向量,它有一个float向量和一个double向量的向量.它还有一个大纲结构的向量,其中包含一个float向量.
最初,我的程序使用8.7 MB的ram启动.我注意到,当我开始填充这些时,加上双打和浮子,记忆得到很快,然后稳定下来.当我清除OGLSHAPE向量时,仍然使用大约19MB.然后,如果我推出大约150多个形状,然后清除那些,我现在使用大约19.3MB的内存.从逻辑上讲,如果它第一次从8.7变为19,那么下一次它会达到30左右.我不确定它是什么.我以为是内存泄漏,但现在我不确定.我所做的只是将数字推入std :: vectors,没有别的.所以我希望能回忆起我的全部记忆.什么可能导致这个?
谢谢
*编辑,好吧它的内存碎片分配了很多小东西,怎么能解决?