前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++初阶学习第八弹——探索STL奥秘(三)——深入刨析vector的使用

C++初阶学习第八弹——探索STL奥秘(三)——深入刨析vector的使用

作者头像
GG Bond1
发布2024-06-14 21:19:42
440
发布2024-06-14 21:19:42
举报
文章被收录于专栏:C/C++葵花宝典C/C++葵花宝典

前言:

在前面我们已经学习了string的使用和模拟实现,它们在使用上有异曲同工之妙,所以在学习了string之后我们再学习vector就会容易很多,下面跟着我的脚步我们来学习一下vector的具体用法


一、vector的基本概念

vector和string一样,都是属于C++模板库中的部分:

Vector,中文名称为“向量”,是C++ STL(Standard Template Library,标准模板库)中的一种数据结构,它是一个动态数组,可以动态地增加或减少其大小。vector在内存中是连续存储的,这意味着它的所有元素都存储在内存中相邻的位置。

基本概念:

vector是一个模板类,定义在头文件(include<vector>)中。可以使用vector来存储任意类型的对象,包括自定义类型。

vector有以下几个重要的特点:

  1. 可动态增长:vector可以动态地增加其大小,无需重新分配内存。
  2. 可动态缩小:vector可以动态地缩小其大小,释放不需要的内存。
  3. 支持随机访问:vector支持随机访问,这意味着可以通过下标快速访问vector的元素。
  4. 支持插入和删除:vector支持在头或尾插入和删除元素,但在中间插入和删除元素的效率较低。

二、vector的使用

接下来我们就来学习一下vector的基本使用方法,由于之前我们已经有了string的学习基础,所以在下面我们会讲的较为快速一些,主要就讲一下vector的几个比较常用的用法,我们的重心还是放在后面vector的模拟实现上

2.1 vector在库中的存在方式及常见接口

我们先来看一下vector在库中的存在形式

这其中涉及到类模板和容器的问题,这些目前我们还没有学到,等我们后面学到了再讲

vector由于是一个容器,它支持不同类型的数据进行操作,所以这个写法上与string还是有不少区别,如vector在定义一个变量时的方式为:

我们先来看一下vector的一些比较重要的接口函数:

下面我们就先来讲一下几个比较重要的接口函数

2.2 vector的构造

vector的构造方式上与string并没有太大区别,主要也是无参的默认构造,初始化构造,拷贝构造等,没有太大的难度,下面的讲解会直接给出代码实例

代码实例如下:

运行结果:

2.3 vector迭代器的使用

这里的使用与string类似,我们往下看:

代码实例:

运行结果:

正反向迭代器在vector中的应用是很好理解的

2.4 vector的空间增长问题

注意事项: 1、vector在不同环境下的默认扩容速度是不同的,一般是1.5倍或者2倍 2、reverse只负责开辟空间,一般在知道需要多少空间的时候可以调用该函数,省去了扩容的麻烦 3、resize不仅可以扩容,还可以进行初始化来改变size

上面的这些重点就是resize和reverse两项,我们先把这两个单拎出来看一下:

resize有两个参数,一个是开辟空间大小,一个是初始化大小

reverse只有一个参数,就是开辟空间大小

代码示例:

运行结果:

2.5 vector的增删查改

这些全部通过接口函数来实现,难度不大

代码实例:

运行结果:

三、总结

以上就是vector的用法讲解,相比于string,vector的使用范围其实更广,vector的难点在于其模拟实现上,这个我们后面就讲

感谢各位大佬观看,创作不易,还请各位大佬点赞支持!!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、vector的基本概念
  • 二、vector的使用
    • 2.1 vector在库中的存在方式及常见接口
      • 2.2 vector的构造
        • 2.3 vector迭代器的使用
          • 2.4 vector的空间增长问题
            • 2.5 vector的增删查改
            • 三、总结
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档