相关疑难解决方法(0)

减少stl向量的容量

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

我的代码将值插入到向量中(事先不知道它们的数字),当这完成时,向量仅用于读取操作.

我想我可以创建一个新的向量,用大小做一个.reseve()并复制项目,但我真的不喜欢额外的复制操作.

PS:我不关心便携式解决方案,只要它适用于gcc.

c++ stl vector

26
推荐指数
4
解决办法
2万
查看次数

这是std :: vector的正常行为吗?

我有一个名为OGLSHAPE的类的std :: vector.

每个形状都有一个SHAPECONTOUR结构的向量,它有一个float向量和一个double向量的向量.它还有一个大纲结构的向量,其中包含一个float向量.

最初,我的程序使用8.7 MB的ram启动.我注意到,当我开始填充这些时,加上双打和浮子,记忆得到很快,然后稳定下来.当我清除OGLSHAPE向量时,仍然使用大约19MB.然后,如果我推出大约150多个形状,然后清除那些,我现在使用大约19.3MB的内存.从逻辑上讲,如果它第一次从8.7变为19,那么下一次它会达到30左右.我不确定它是什么.我以为是内存泄漏,但现在我不确定.我所做的只是将数字推入std :: vectors,没有别的.所以我希望能回忆起我的全部记忆.什么可能导致这个?

谢谢

*编辑,好吧它的内存碎片分配了很多小东西,怎么能解决?

c++ memory vector

1
推荐指数
1
解决办法
792
查看次数

标签 统计

c++ ×2

vector ×2

memory ×1

stl ×1