改变向量内存分配策略?

Posted

技术标签:

【中文标题】改变向量内存分配策略?【英文标题】:Change vector memory allocation strategy? 【发布时间】:2017-10-30 06:11:30 【问题描述】:

有没有办法使用您自己的策略,而不是在调整大小时将矢量大小加倍。

(here关于内存分配的一个很好的解释)

【问题讨论】:

【参考方案1】:

没有。没有标准的方式来影响std::vector的增长策略。

至少,没有保证降低增长率的方法。您可以在增长触发元素添加之前使用reserve,这可以有效地控制增长速度的下限。

而不是在调整大小时将矢量大小加倍

这不一定是向量实现所使用的策略。

【讨论】:

【参考方案2】:

据我所知,除非你自己实现一个vector,否则在c++中是不允许改变vector内存增加策略的。

如果你确实想控制向量内存增加的策略,你可以使用reserve。

【讨论】:

以上是关于改变向量内存分配策略?的主要内容,如果未能解决你的问题,请参考以下文章

垃圾收集器与内存分配策略之内存分配与回收策略

当向量需要更多内存并分配内存时,指针会发生啥?

当向量需要更多内存并重新分配内存时,指针会发生啥?

垃圾收集器与内存分配策略-内存分配与回收策略

内存分配与回收策略

释放分配给二维向量的内存