C++:vector中的resize()函数 VS reserve()函数

http://www.cplusplus.com/reference/vector/vector/vector/

写代码的时候无意错用了这两个函数 导致测试的时候,程序运行崩溃 发现这两个函数还是有区别的

void reserve (size_type n);

reserver函数用来给vector预分配存储区大小,即capacity的值 ,但是没有给这段内存进行初始化。reserve 的参数n是推荐预分配内存的大小,实际分配的可能等于或大于这个值,即n大于capacity的值,就会reallocate内存 capacity的值会大于或者等于n 。这样,当ector调用push_back函数使得size 超过原来的默认分配的capacity值时 避免了内存重分配开销。

需要注意的是:reserve 函数分配出来的内存空间,只是表示vector可以利用这部分内存,但vector不能有效地访问这些内存空间,访问的时候就会出现越界现象,导致程序崩溃。

void resize (size_type n);
void resize (size_type n, value_type val);

resize函数重新分配大小,改变容器的大小,并且创建对象

当n小于当前size()值时候,vector首先会减少size()值 保存前n个元素,然后将超出n的元素删除(remove and destroy)

当n大于当前size()值时候,vector会插入相应数量的元素 使得size()值达到n,并对这些元素进行初始化,如果调用上面的第二个resize函数,指定val,vector会用val来初始化这些新插入的元素

当n大于capacity()值的时候,会自动分配重新分配内存存储空间。

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

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

相关文章

使用Gradle的maven-publish插件发布快照

我最近与Gradle一起开始了一个新项目 ,并决定直接参加–没有Gradle经验,没有关于Groovy的线索,没有教程,只是继续尝试直到可行。 在我决定使用孵化式maven-publish插件将快照发布到Sonatype的Maven快照存储库之前,这一…

计算机网络ipv4到ipv6怎么实现,论计算机网络协议IPV4到IPV6的过渡策略|房屋搬迁过渡协议...

摘要:近年来IPV4协议的网络地址问题已经成为阻碍互联网发展的主要矛盾,而互联网的发展趋势将证明IPV4协议必将会被IPV6协议所替代,但其过渡的过程必定是艰难而漫长的。本文论述了IPV4协议存在的主要问题,并详细的分析了IPV4协议向IPV6协议过渡…

STL常用容器浅谈

STL是C/C开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用。下面,我们就浅谈某些常用的容器。这里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的特点。STL中的常用容器包括:顺序性容器&am…

使用AWS使Spring Boot应用程序无服务器运行

在之前的 几篇 文章中,我描述了如何设置Spring Boot应用程序并在AWS Elastic Beanstalk上运行它。 尽管这是从物理服务器到云服务器的伟大一步,但还有更好的可能! 走向无服务器 。 这意味着无需花费任何服务器费用,也无需维护或配…

计算机对中断的处理是在用户态下进行的,电大本科生作业系统作业3与答案.doc...

电大本科生作业系统作业3与答案《操作系统》课程作业(三)姓名         班级         学号一、选择题(选择一个正确答案的代码填入括号中)作业生存期共经历4个状态,它们是提交、后备、( )和完成。A.等待 B.就绪 C&#xff0…

浏览器输入网址到浏览器渲染页面的过程

1) 在客户端浏览器中输入网址URL。 2) 发送到DNS(域名服务器)获得域名对应的WEB服务器的IP地址。 3) 客户端浏览器与WEB服务器建立TCP(传输控制协议)连接。 4) 客户端浏览器向对应IP地址的WEB服务器发送相应的HTTP或HTTPS请求。 5) WEB服务器响应请求,返回指定的URL…

【资料整理】proftpd安装配置

【资料整理】proftpd安装配置1)下载安装 wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4c.tar.gz tar zxvf proftpd-1.3.4c.tar.gz cd proftpd-1.3.4c (启用配额模块,限制上传大小,如果重新configure,则需要先make dis…

poj 1873

哇实验室里正在吵架,爽死了! wf水题。显然二进制枚举,注意剪枝,val>ans的时候剪一下,不然会tle。然后就没惹。 我老人家一开始写了个 感觉非常垃圾,wa了一发又t了一发。 感觉自己可以退役了 1 #include …

汉中计算机培训班学费是多少,汉中远程教育培训班收费多少

汉中远程教育培训班收费多少?在企事业单位,无论你的从业履历有多么辉煌,没有本科学历就是一道硬伤。在这个层面上,本科学历是你求得工作的一块“敲门砖”。还有,很多企事业单位是靠学历论薪或者晋职加薪的重要条件&…

wadl_WADL中的JSON模式

wadl在其他工作之间&#xff0c;我最近一直在审查WADL规范&#xff0c;以解决一些文档问题&#xff0c;以生成更新版本。 因为显而易见的一件事是缺少对XML以外的语言的语法支持-是的&#xff0c;您可以使用JSON <-> XML Schema的映射&#xff0c;但这对于JSON纯粹主义者…

计算机资源管理器课件,计算机基础课件ppt-第5讲控制面板与资源管理器.pdf

第五讲控制面板资源管理器与 深入理解控制面板本章重点1、资源管理器2、控制面板3、磁盘管理4、附件5、注册表管理文件和文件夹s查看本机的内容1、双击 “我的电脑”2、双击要查看的磁盘3、双击屏幕上显示出的文件或文件夹便可打开一个文件或显示文件夹中的文件。资源管理器资源…

python中ascii码和字符的转换

将ASCII字符转换为对应的数值即‘a’-->65&#xff0c;使用ord函数,ord(a)反正&#xff0c;使用chr函数&#xff0c;将数值转换为对应的ASCII字符&#xff0c;chr(65)

Java操作MongoDB之mongodb-driver

mongodb-driver是mongo官方推出的java连接mongoDB的驱动包&#xff0c;相当于JDBC驱动。 通过一个入门的案例来了解mongodb-driver的基本使用&#xff1a; 1、查询全部记录 1.1、创建工程mongoDemo&#xff0c;引入依赖 <dependency><groupId>org.mongodb</grou…

具有Stormpath和Spring Boot的OAuth 2.0令牌管理

建筑物身份管理&#xff0c;包括身份验证和授权&#xff1f; 尝试Stormpath&#xff01; 我们的REST API和强大的Java SDK支持可以消除您的安全风险&#xff0c;并且可以在几分钟内实现。 注册 &#xff0c;再也不会建立auth了&#xff01; OAuth 2.0令牌管理经常被误解并且难…

5c用计算机怎么打,再一次谈谈%5c暴库的利用 -电脑资料

再一次谈谈%5c暴库的利用技术&#xff0c;原因我只找到含糊的说法&#xff1a;/的UNICODE是%5c当提交时,IIS无法正常解析,导致暴库&#xff0c;还有很多人说不成功&#xff0c;我要说的三点&#xff1a;1。一般的错误返回页面是本地IE提供的,所以我们先得关了本地的错误页面,具…

CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法

之前有的朋友问我&#xff0c;CentOS版本怎么安装python的pip&#xff0c;我之前给出的Ubuntu下apt-get的方法 ubuntu 需要先安装下pip吧&#xff0c; apt-get install python-pip 安装requests&#xff0c; pip install requests 但是有的朋友由于是centos的&#xff0c;直接…

计算机网络原理如何修改本机mtu值,电脑的本地mtu值要怎么设置

相信很多人在玩dota2时都会出现使用wifi联网卡顿的现象&#xff0c;往往是电脑mtu值设置出现问题。下面由学习啦小编为你整理了电脑的本地mtu值要怎么设置的相关方法&#xff0c;希望对你有帮助!电脑设置mtu值的方法如下MTU值是按照TCP/IP协议传输数据报时的最大传输单元。从本…

Python 编程精选

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑为了方便查找&#xff0c;请看目录&#xff08;手机端就没有目录哦&#xff09; 注&#xff1a;本文篇幅较大&#xff0c;请耐心等待&#xff08;power by 《Python黑帽子:黑客与渗透测试编程之道 》&#xff0…

Docker 内程序时间设置,很重要

Docker 内程序时间设置&#xff0c;很重要 原文:Docker 内程序时间设置&#xff0c;很重要重要!!!!! 创建容器时候需要修改一个参数,设置tomcat的时区 -e TZ"Asia/Shanghai" -v /etc/localtime:/etc/localtime:roposted on 2019-03-02 15:15 NET未来之路 阅读(...) 评…

计算机教师专业发展论文,关于教师专业发展的计算机专业论文

1教师专业发展内涵阐述1.1专业知识发展教师的专业知识是教书育人的前提。计算机教师的专业知识包括三个方面&#xff1a;一是日常生活、人文素养等基础文化知识&#xff1b;二是教育理论、教学方法等教育学科知识&#xff1b;三是综合的计算机学科专业知识。1.2专业能力发展教师…