浅析vector之clear、resize、reserve方法对size()和capacity()的影响

1. clear

用途:

删除容器中的所有元素,进行此操作之后,size()方法返回0;

语法:

clear

注意事项:

  • 指向容器中元素的引用、指针、迭代器都会失效。
  • 该方法不会更改容器的capacity
  • 参考链接:https://en.cppreference.com/w/cpp/container/vector/clear

2. resize

用途:

修改容器的尺寸为指定大小。

语法:

resize

注意事项:

resize()函数有两种语法,一种是只提供尺寸,一种是还额外提供内容。
根据传入的count与原先的sizecapacity的大小不同,会有不同的表现,归纳如下:

  1. 如果count==size(),则什么都不做;
  2. 如果count<size(),则size()减少为count,同时capacity()保持不变;
  3. 如果size()<count<capacity(),则size()扩大为count,同时capacity()保持不变;
  4. 如果count>capacity(),则size()扩大为n,同时capacity()扩大到大于等于count;

3. reserve

用途:

为容器预先分配不小于指定大小的内存空间。

语法:

在这里插入图片描述

注意事项:

  • 不改变容器的size()
  • 如果new_cap比当前容器的capacity()要大,则会重新进行内存分配,从而所有的迭代器、引用都会失效;反之,则无事发生;
  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值