小编Ali*_*tan的帖子

为什么编译器在向量满时不会尝试分配连续的内存(如果可能)?

std::vector满了,分配新的内存.从我读到的,新容量以几何级数增长(但这与问题无关),然后旧信息被复制到新的内存区域,旧的信息被释放.

基于这个假设,我的问题是:

  1. 为什么编译器不会试图在我们的末尾看到是否有足够的连续免费使用内存,只在我们的末尾std::vector分配一部分std::vector,并且不浪费时间复制?

  2. 人们是否试图实现这一点,但是决定它不值得这样做?(平均/总是)

  3. 是否还有其他更微妙的原因导致这种情况没有发生?

c++ memory-management allocation vector

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

标签 统计

allocation ×1

c++ ×1

memory-management ×1

vector ×1