c++ 容器 <vector>,<string>中对象增长时,空间分配原则

为了支持快速随机访问,部分容器如vector和string在内存中连续存储元素,当所在连续内存空间大小不足以存放这块需要连续存放的数据时,系统将为其分配一块更大的连续内存空间,然后将之前内存空间中的数据依次复制过来。为了防止频繁的整块复制操作,系统不应每次都按需分配;同时也不能分配过大的连续空间导致浪费,导致需要较大连续存储空间的数据找不到合适的连续空闲区域。那么,c++中的这些容器在实际应用中时如何分配的呢?

c.capacity()  //不重新分配内存空间的话,容器c最多保存多少元素。

多次尝试发现系统倾向于首先给程序分配申请大小的内存空间,以后按照initSize*2^k 寻找合适的内存空间进行分配。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值