vector是如何扩容的

vector容器扩容

vector是成倍扩容的,一般是2倍。

vector管理内存的成员函数

开始填值

没有填值之前,vector元素个数和容量大小都为0

加入一个值之后:

加入两个值:重点在加入三个值,此时容量变为4:加入第4个值,还是4.但当加入第五个值时,因此4不够用了,就又2倍开了块空间:当我们加入第9个值的时候,又不够用了,此时会2倍扩容开16空间:

实际上我们只需要容量为10字节就够用了,因此,我们在事先知道我们需要多大空间时,可以预先分配合适的空间以提高效率:这样效率就会快很多,不仅省了很多内存,并且省去了很多内存重新分配和释放的时间。

但是我们如果用光了预先配置的空间,也是会2倍扩容的:

这个时候我们可以跳过shrink_to_fit这个接口来释放未使用的空间:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/239422.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言实现深度学习的正向传播和反向传播

文章目录 开发前言开发理论图解理论数据类型数学函数数据节点统一抽象变量数据节点常量数据节点单目运算封装双目运算封装算子节点统一抽象基础算子加法算子减法算子乘法算子除法算子指数算子对数算子正切算子正弦算子余弦算子数据流图正向传播反向传播运行示例开发总结 开发前…

mac安装elasticsearch

下载地址: Past Releases of Elastic Stack Software | Elastic https://www.elastic.co/cn/downloads/past-releases#elasticsearch 选择7.10版本 进入es bin目录下执行启动命令 ./elasticsearch 会报错 ./elasticsearch-env: line 126: syntax error near u…

YOLOv8如何输出COCO指标

1、先正常python train 一个模型 yolo taskdetect modetrain model/home//v8/v8-ori-x/yolov8x.pt data/home/v8/v8-ori-x/ultralytics/cfg/datasets/111.yaml epochs300 batch16 device62、再正常python val --各种参数 --save_jsonTrue,这一步的作用是要生成自己…

linux上编写进度条

目录 一、预备的两个小知识1、缓冲区2、回车与换行 二、倒计时程序三、编写入门的进度条四、编写一个正式的五、模拟实现和下载速度相关的进度条 一、预备的两个小知识 1、缓冲区 首先认识一下缓冲区:先写一个.c文件如下: 我们执行一下这个程序时&…

主成分分析例题 (多元统计分析期末复习)

例一 给定X的协差阵,对其进行主成分分析, (1)求出每个主成分的贡献率; (2)求出每个原始变量的信息提取率; 解:对于主成分分析的题,一般来说,题目给定一个协方…

Verilog inout 端口使用和仿真

inout端口是Verilog中一种特殊的端口类型,它可以实现双向的数据传输,既可以作为输入,也可以作为输出。inout端口通常用于实现管脚复用、三态缓冲器、总线驱动等功能。inout端口的使用需要注意以下几个方面: inout端口必须声明为wi…

海云安谢朝海:开发安全领域大模型新实践 人工智能助力高效安全左移

2023年11月29日,2023中国(深圳)金融科技大会成功举行,该会议是深圳连续举办的第七届金融科技主题年度会议,也是2023深圳国际金融科技节重要活动之一。做好金融工作,需要兼顾创新与安全,当智能体…

系列十七、理解SpringBoot中的starter 自定义一个starter

一、概述 作为后端Java程序员,基本上公司的日常开发都是基于SpringBoot进行的,我们使用SpringBoot也是沉醉于它的各种各样的starter带给我们的便利,这些starter为我们带来了众多的自动化配置,通过这些自动化配置,我们可…

mysql中除了InnoDB以外的其它存储引擎

参考资料:https://dev.mysql.com/doc/refman/8.0/en/storage-engines.html MyISAM存储引擎 https://dev.mysql.com/doc/refman/8.0/en/myisam-storage-engine.html MyISAM 存储引擎是基于比较老的ISAM存储引擎(ISAM已经不再可用)&#xff…

[论文精读]利用大语言模型对扩散模型进行自我修正

本博客是一篇最新论文的精读,论文为UC伯克利大学相关研究者新近(2023.11.27)在arxiv上上传的《Self-correcting LLM-controlled Diffusion Models》 。 内容提要: 现有的基于扩散的文本到图像生成模型在生成与复杂提示精确对齐的图像时仍然存在困难,尤其是需要数值和…

前缀和 LeetCode1094 拼车

1094. 拼车 车上最初有 capacity 个空座位。车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向) 给定整数 capacity 和一个数组 trips , trip[i] [numPassengersi, fromi, toi] 表示第 i 次旅行有 numPassengersi 乘客,接…

SATA模块物理层OOB信号分析总结(三)

目录 一、简介二、总体解析2.1 OOB作用2.2 OOB信号的组成2.3 总体phy link过程2.4 整体PHY LINK Trace2.5 PHY LINK状态查询 三、其他相关链接1、SATA模块之HBA卡开发总结(一)2、SATA信息传输FIS结构总结(二)3、PCIe物理层总结-PC…