【第十七课】STL容器:vector

本文介绍了C++vector作为动态数组的原理,强调了其与普通数组在扩容效率上的优势,并探讨了内置函数的使用以及两个vector的比较方法。重点在于vector的高效内存管理及其在性能上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

原理介绍

vector相对普通数组的优势

常用内置函数

一些解释 

两个vector的比较运算


 

前言

在前面学习的过程中,其实vector用的还是挺多的。我们所使用到的vector最主要的功能就是,利用vector创建动态数组,也就是可以不提前规定数组的大小, 系统自动根据我们所使用的空间来动态的管理我们数组的大小。

原理介绍

vector实现动态数组的原理是:倍增。也就是我们vector类型的数组,当 当前空间不够用的时候,就会直接创建一个空间大小是原来2倍的数组,将原来空间里的元素复制到新的数组中

关于当前空间的说法,是否与我们所说的“vector可以不提前规定数组的大小”存在冲突呢?答案是不会的。

对于vector类型数组的“当前空间”指的是:如果我们在创建vector时没有指定大小,那么它的初始大小通常是0。也就是说,vector在刚被创建时并不会预先分配任何内存,只有当我们第一次向其添加元素时,它才会开始分配内存

同时,我们之前用到的vector还有一个优势,就是vector容器创建的数组可以由函数直接作为返回值将数组返回到主函数中。

使用vector创建的格式

    vector<int> a;//创建一个数据元素为int类型的数组,数组名称是a
    vector<int> a(10);//在原有基础上,规定了该数组的元素个数是10个
    vector<int> a(10,2);//在原有基础上,规定该数组的这10个元素都初始化为2

    vector<int> a[10];//创建了10个vector<int>类型的数组

(最后一个数组类型还没怎么用过,前面的比较常见)  

vector相对普通数组的优势

于是这里我们会发现其实vector实现动态管理数组大小的方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值