VECTORRESERVEvector的reserve的使用(避免内存重新分配以及内存分配的方式)

文章正文
发布时间:2025-06-25 21:53

VECTORRESERVEvector的reserve的使用(避免内存重新分配以及内存分配的方式)

news/2025/6/25 21:53:28/

文章目录

vector的reserve的作用

Demo:对比使用reserve的区别

Demo运行结果分析

新的疑问:大于capacity指定之后的动态分配

重新分配空间后内存地址的变化

vector的reserve的作用

之前提到vector中不断的push_back,会进行内存的重新自动分配的问题
(详见:https://blog.csdn.net/hl_zzl/article/details/84798804 )

为了避免重新分配内存带来的问题,vector提供了reserve函数

std::vector::reserve

void reserve (size_type n);

Request a change in capacity
Requests that the vector capacity be at least enough to contain n elements.
If n is greater than the current vector capacity, the function causes the container to reallocate its storage increasing its capacity to n (or greater).
In all other cases, the function call does not cause a reallocation and the vector capacity is not affected.
This function has no effect on the vector size and cannot alter its elements.

reserve的作用是更改vector的容量(capacity),使vector至少可以容纳n个元素
如果n大于vector当前的容量,reserve会对vector进行扩容。其他情况下都不会重新分配vector的存储空间

Demo:对比使用reserve的区别

说明:在main中声明了两个vector,vecInt为默认初始化,vecIntB使用capacity初始化其容量为100。分别对vetIntA和vecIntB进行同样的操作:
①把0~99依次push_back到vector中,
②在push_back的过程中观察vector的容量capacity是否发生变化。

#include <iostream> #include <vector> #include <stdint.h> using namespace std;void growPushBack(vector<int> &vec, uint16_t


相关文章

NULLOBJECTENVI5.3 辐射定标报错:NullObject

在做辐射定标时突然报错&#xff1a; RadiometricCalibration failed:<OBJREF(< NullObject>)> 解决方法&#xff1a; 文件路径不要出现中文&#xff0c;将文件路径中的中文改为英文即可。

阅读更多...

GOOD MASTERGNSS数据下载软件介绍----GAMPII-GOOD-master

一、软件下载与准备 1.下载网址 1.在github上下载GAMP||-GOOD压缩包&#xff0c;网址为&#xff1a;GitHub - zhouforme0318/GAMPII-GOOD 2.解压文件夹&#xff0c;放到指定位置&#xff0c;这里我将其解压到D盘&#xff0c;文件路径为&#xff1a;D:\GAMPII-GOOD-master 2.文…

阅读更多...

双面pcb板如何画双层pcb板_双层pcb板布线规则(操作技巧与案例分析)

双层pcb&#xff0c;意思是在一块pcb板子的顶层和底层都画导线。双面板解决了单面板中因为布线交错的难点&#xff08;可以通过孔导通到另一面&#xff09;&#xff0c;即正反两面都有布线&#xff0c;元器件可以焊接在正面&#xff0c;也可以焊接在反面&#xff0c;双层线路板…

阅读更多...

Bgain图像算法---白平衡AWB(讲的很好)

本文转载wzwxiaozheng的白平衡算法&#xff0c;主要包括两部分&#xff1a;色温曲线和色温计算。原文 1&#xff0c;白平衡算法---色温曲线 本文大体讲解了白平衡的算法流程,适用于想了解和学习白平衡原理的筒子们.…

阅读更多...

中文乱码的产生原因中文出现乱码最常见的几种方式解析

1、出现古文夹杂日韩文&#xff0c;以GBK读取UTF-8编码 2、出现方块形&#xff0c;以UTF-8读取GBK 3、各种符号&#xff0c;以ISO8859-1方式读取UTF-8 4、拼音码&#xff0c;带声调的字母&#xff0c;以ISO8859-1方式读取GBK 5、长度为奇数时&#xff0c;最后的字符变成问号&am…

阅读更多...

自动拨号服务器在Ubuntu上配置PPPoE服务:从安装到自动化启动的全指南

在Ubuntu上配置PPPoE服务&#xff1a;从安装到自动化启动的全指南 PPPoE&#xff08;点对点协议以太网&#xff09;是一种广泛用于DSL和光纤宽带连接的协议。在本篇技术博客中&#xff0c;我们将详细介绍如何在Ubuntu系统上配置PPPoE服务&#xff0c;包括安装、配置、启动以及…

阅读更多...

最新杀毒软件排名世界排名前五的杀毒软件!安全又实用 (2024年)

文章目录 前言2024年6月&#xff0c;排名1&#xff0c;Ahnlab2&#xff0c;Avast--免费&#xff0c;支持中文安装后的效果 3&#xff0c;AVG4&#xff0c;Avira--免费&#xff0c;支持中文安装后的效果 5&#xff0c;Bitdefender题外话 零基础入门网络安全/黑客【----帮助网安学…

阅读更多...

淘宝抢拍工具【开源!】为了帮朋友抢jk,写了一个抢拍器,支持淘宝天猫京东。使用教程如下:

为了帮朋友抢jk&#xff0c;写了一个抢拍器&#xff0c;支持微秒级定时&#xff0c;支持在双十一双十二期间淘宝天猫京东平台使用&#xff0c;在这里送给大家了。使用教程如下&#xff1a; 最新版本会在下方网盘链接中更新&#xff0c;如抢拍器不能正常使用时可到网盘链接中下…