当前位置: 首页 > news >正文

【C++】STL——vector的使用

目录

💕1.vector介绍

💕2.vector的基本用法 

💕3.vector功能的具体用法 (讲解)

💕4.vector——size,capacity函数的使用 (简单略讲)

💕5.resize,reserve函数 

💕6.empty函数 

💕7.front函数,back函数,operator[ ]函数 

💕8.push_back函数,pop_back函数 

💕9.begin函数,end函数 

💕10.rbegin函数,rend函数 

💕11.insert函数,erase函数

💕12.sort函数对vector排序 

💕13.完结


独帜入渊深未知  身似浮萍命难持

(最新更新时间——2025.2.4)

 

💕1.vector介绍

vector 是 C++ 标准模板库(STL)中提供的动态数组容器,能够自动管理内存,支持高效的元素访问和在尾部快速增删元素。与普通数组相比,vector 的大小可以动态调整,是 C++ 中最常用的容器之一。

💕2.vector的基本用法 

vector 的使用需要包含一个头文件

#include<vector>

vector 中有许多我们常见的操作,如下->:


迭代器功能->:

其他功能:

💕3.vector功能的具体用法 (讲解)

接下来会讲解vector中最常用的几种函数用法,先讲解vector的初始化


vector在创建时因为模板的作用,可以指定vector的内容类型,如下->:

#define _CRT_SECURE_NO_WARNINGS 
#include<vector>
#include<string>
#include<iostream>
using namespace std;
int main()
{vector<int> a1 = { 1,2,3 };vector<double> a2 = { 2 };vector<string> a3 = { "hello","world" };vector<char> s1 = { 'c' };vector<int> b1(2);//也可以如下初始化,但不推荐vector<int> b2(2,3);
}

可以指定是int,double,char或者string类型

💕4.vector——size,capacity函数的使用 (简单略讲)

size函数用来返回顺序表(vector)中的有效值

capacity用来返回顺序表(vector)中的容量

maxsize用来表示顺序表(vector)的最大有效值是多少


代码如下->:

#define _CRT_SECURE_NO_WARNINGS 
#include<vector>
#include<string>
#include<iostream>
using namespace std;
int main()
{vector<int> a1 = { 1,2,3,4 };cout << a1.size()<<endl;//打印4cout << a1.capacity() << endl;//打印4cout << a1.max_size() << endl;//打印一个巨大的数
}

💕5.resize,reserve函数 

resize函数可以更改顺序表中的有效值(size)个数,并且如果更改后的size个数大于原size个数,可以将新开辟的size初始化一个值(注意是可以,不是一定,需要用户显示写)


我们用代码为例

可以看到,我们更改了size的个数,接下来进行别的测试


这次,我们更改后的size个数比原来的size大,我们显示的将新开辟的size全部初始化为9,注意一定是新开辟的size初始化,如果我们更改后的size比原来的小是不会有作用的,如下:


接下来: reserve 函数是用来更改顺序表中的capacity大小的,它被称为预留空间,它只会扩大capacity,并不会缩小capacity,并且不会将新开辟的capacity初始化,我们以代码为例


这里的遍历顺序表没有意义,不用在意

💕6.empty函数 

empty函数用来判断顺序表是否为空,它返回的值是bool类型

💕7.front函数,back函数,operator[ ]函数 

front函数用来返回顺序表的第一个有效值

back函数用来返回顺序表的最后一个有效值

operator[ ]供我们可以用下标访问顺序表中的内容


代码如下->:

💕8.push_back函数,pop_back函数 

push_back用来实现顺序表的尾插


pop_back用来实现顺序表的尾删


代码如下->:


💕9.begin函数,end函数 

begin函数与end函数都为迭代器类型,我们可以把它理解为指针一样的东西

begin()返回的是顺序表的首地址,end()返回的是顺序表中最后一个元素的下一个位置


虽然它们的返回类型不是指针,但我们可以像使用指针一样使用它


可以理解为指针一样的存在,但是并不是指针


用它们我们可以实现遍历

💕10.rbegin函数,rend函数 

rbegin函数与rend函数一样都是迭代器类型,并且依旧可以像指针一样使用

只不过rbegin与rend所指的位置调过来了

rbegin函数返回的是顺序表中最后一个元素的下一个位置

rend()返回的是顺序表的首地址


rbegin的++被重载了,也就是说rbegin函数的++实际上是我们正常使用的--,而rbegin的--实际上就是我们正常使用的++

rend同理

💕11.insert函数,erase函数

 insert函数用来实现在某一位置插入数据

erase函数用来实现在某一位置删除数据,也可以全部删除


这里需要特别注意,insert与erase函数所指的位置,并不是我们常用的下标,而是迭代器返回的位置,我们先看代码->:


💕12.sort函数对vector排序 

我们如果想对vector函数排序,可以使用std里面的sort函数排序,并且可以选择升序或者降序,示例如下->:需要注意的是sort函数需要的是迭代器类型


默认是升序的结果,如果想要降序就要用到一个函数,并添加到sort函数里

 std::greater<int>()

如何使用?

 

这样就变为降序了

💕13.完结

http://www.lryc.cn/news/531551.html

相关文章:

  • springboot/ssm互联网智慧医院体检平台web健康体检管理系统Java代码编写
  • 介绍一下Mybatis的Executor执行器
  • Wide Deep 模型:记忆能力与泛化能力
  • Hot100之矩阵
  • Python语言的安全开发
  • 蓝桥杯刷题DAY3:Horner 法则 前缀和+差分数组 贪心
  • java项目验证码登录
  • 手写MVVM框架-环境搭建
  • 2025年2月2日(网络编程 tcp)
  • 【Docker项目实战】使用Docker部署MinIO对象存储(详细教程)
  • 使用ollama本地部署Deepseek r1
  • Unity飞行代码 超仿真 保姆级教程
  • DeepSeek蒸馏模型:轻量化AI的演进与突破
  • 使用 sunshine+moonlight 配置串流服务无法使用特殊键
  • 5.角色基础移动
  • 单细胞-第四节 多样本数据分析,下游画图
  • Linux的循环,bash的循环
  • 【DeepSeek开发】Python实现股票数据可视化
  • 华为小米vivo向上,苹果荣耀OPPO向下
  • 毕业设计:基于深度学习的高压线周边障碍物自动识别与监测系统
  • el-table表格点击单元格实现编辑
  • 数据结构:时间复杂度
  • SPI(Serial Peripheral Interface)串行外围设备接口
  • Java 8 Stream API
  • 亚博microros小车-原生ubuntu支持系列:21 颜色追踪
  • GESP6级语法知识(六):(动态规划算法(六)多重背包)
  • MySQL 事务实现原理( 详解 )
  • AI协助探索AI新构型自动化创新的技术实现
  • 九. Redis 持久化-RDB(详细讲解说明,一个配置一个说明分析,步步讲解到位)
  • mac连接linux服务器