请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

capacity值的变化该如何确定?

操作发现,vector容量不变,存储数组数据的内存地址也不会发生变化。
如果代码中push,insert操作将会触法改变capacity时,又如何在开发时直接判断,容量的变化

正在回答

插入代码

1回答

vector容量是否变化取决于数组分配空间的策略,一般在使用层不用考虑细节,如果需要了解细节可以通过capacity方法来跟踪变化。

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_慕田峪7242972 #1
    老师您看一下我下面的理解有没有问题:
    我想vector是可以理解为class的吧。 那是不是可以认为,vector容器值其实就是数组数据这片内存空间可容纳的最大数据个数,当发现容纳不下是,vector中会有方法来重新申请一片空间存储数据,重写指针指向(地址变化也是因此发生)
    而 vector容量变化也是取决于vector里的方法
    
    不是的话,老师有没有什么资料可以帮助进一步理解的
    回复 有任何疑惑可以回复我~ 2020-02-21 11:49:29
  • 基本是正确的,如果想更多了解vector的内存管理细节可以参看STL的源码,或者阅读《STL源码剖析》
    回复 有任何疑惑可以回复我~ 2020-02-21 12:48:36
  • 提问者 qq_慕田峪7242972 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-02-21 19:08:26
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信