当前位置: 首页 > 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.完结

相关文章:

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

目录 &#x1f495;1.vector介绍 &#x1f495;2.vector的基本用法 &#x1f495;3.vector功能的具体用法 &#xff08;讲解&#xff09; &#x1f495;4.vector——size&#xff0c;capacity函数的使用 &#xff08;简单略讲&#xff09; &#x1f495;5.resize&#xff…...

springboot/ssm互联网智慧医院体检平台web健康体检管理系统Java代码编写

springboot/ssm互联网智慧医院体检平台web健康体检管理系统Java代码编写 基于springboot(可改ssm)vue项目 开发语言&#xff1a;Java 框架&#xff1a;springboot/可改ssm vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&am…...

介绍一下Mybatis的Executor执行器

Executor执行器是用来执行我们的具体的SQL操作的 有三种基本的Executor执行器&#xff1a; SimpleExecutor简单执行器 每执行一次update或select&#xff0c;就创建一个Statement对象&#xff0c;用完立刻关闭Statement对象 ReuseExecutor可重用执行器 可重复利用Statement…...

Wide Deep 模型:记忆能力与泛化能力

实验和完整代码 完整代码实现和jupyter运行&#xff1a;https://github.com/Myolive-Lin/RecSys--deep-learning-recommendation-system/tree/main 引言 Wide & Deep 模型是一种结合了线性模型&#xff08;Wide&#xff09;和深度神经网络&#xff08;Deep&#xff09;的混…...

Hot100之矩阵

73矩阵置零 题目 思路解析 收集0位置所在的行和列 然后该行全部初始化为0 该列全部初始化为0 代码 class Solution {public void setZeroes(int[][] matrix) {int m matrix.length;int n matrix[0].length;List<Integer> list1 new ArrayList<>();List<…...

Python语言的安全开发

Python语言的安全开发 引言 在信息技术迅速发展的今天&#xff0c;网络安全问题愈发凸显。随着Python语言的广泛应用&#xff0c;尤其是在数据分析、人工智能、Web开发等领域&#xff0c;其安全问题越来越受到重视。Python作为一门高效且易于学习的编程语言&#xff0c;虽然在…...

蓝桥杯刷题DAY3:Horner 法则 前缀和+差分数组 贪心

所谓刷题&#xff0c;最重要的就是细心 &#x1f4cc; 题目描述 在 X 进制 中&#xff0c;每一数位的进制不固定。例如&#xff1a; 最低位 采用 2 进制&#xff0c;第二位 采用 10 进制&#xff0c;第三位 采用 8 进制&#xff0c; 则 X 进制数 321 的十进制值为&#xff…...

java项目验证码登录

1.依赖 导入hutool工具包用于创建验证码 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.2</version></dependency> 2.测试 生成一个验证码图片&#xff08;生成的图片浏览器可…...

手写MVVM框架-环境搭建

项目使用 webpack 进行进行构建&#xff0c;初始化步骤如下: 1.创建npm项目执行npm init 一直下一步就行 2.安装webpack、webpack-cli、webpack-dev-server&#xff0c;html-webpack-plugin npm i -D webpack webpack-cli webpack-dev-server html-webpack-plugin 3.配置webpac…...

2025年2月2日(网络编程 tcp)

tcp 循环服务 import socketdef main():# 创建 socket# 绑定tcp_server socket.socket(socket.AF_INET, socket.SOCK_STREAM)tcp_server.bind(("", 8080))# socket 转变为被动tcp_server.listen(128)while True:# 产生专门为链接进来的客户端服务的 socketprint(&qu…...

【Docker项目实战】使用Docker部署MinIO对象存储(详细教程)

【Docker项目实战】使用Docker部署MinIO对象存储 前言一、 MinIO介绍1.1 MinIO简介1.2 主要特点1.3 主要使用场景二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载MinIO镜像五、…...

使用ollama本地部署Deepseek r1

1、下载ollama 在浏览器地址输入&#xff1a;https://ollama.com/ 选择windows版本的下载 2、安装ollama 3、运行ollama 安装完成后&#xff0c;打开命令行工具win r 在命令行输入&#xff1a;ollama 4、使用ollama下载并部署Deepseed r1 在ollama网站&#xff0c;下载…...

Unity飞行代码 超仿真 保姆级教程

本文使用Rigidbody控制飞机&#xff0c;基本不会穿模。 效果 飞行效果 这是一条优雅的广告 如果你也在开发飞机大战等类型的飞行游戏&#xff0c;欢迎在主页搜索博文并参考。 搜索词&#xff1a;Unity游戏(Assault空对地打击)开发。 脚本编写 首先是完整代码。 using System.Co…...

DeepSeek蒸馏模型:轻量化AI的演进与突破

目录 引言 一、知识蒸馏的技术逻辑与DeepSeek的实践 1.1 知识蒸馏的核心思想 1.2 DeepSeek的蒸馏架构设计 二、DeepSeek蒸馏模型的性能优势 2.1 效率与成本的革命性提升 2.2 性能保留的突破 2.3 场景适应性的扩展 三、应用场景与落地实践 3.1 智能客服系统的升级 3.2…...

使用 sunshine+moonlight 配置串流服务无法使用特殊键

最近了解到串流技术&#xff0c;使用的方案是 sunshine 为串流服务端&#xff0c;moonlight 为客户端&#xff0c;分别在 ipad&#xff0c;android&#xff0c;tv 端安装。 存在的问题 不管说什么平台都会有特殊键无法使用的问题&#xff0c;最初我发现在安卓电视&#xff0c…...

5.角色基础移动

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 角色的xyz轴与移动方向拌合输入轴值add movement inputget controller rotationget right vectorget forward vector 发现模型的旋转改变后&#xff0c;xyz轴也会改变&#xff0c;所以需要旋转值来计算xyz轴方向。 …...

单细胞-第四节 多样本数据分析,下游画图

文件在单细胞\5_GC_py\1_single_cell\2_plots.Rmd 1.细胞数量条形图 rm(list ls()) library(Seurat) load("seu.obj.Rdata")dat as.data.frame(table(Idents(seu.obj))) dat$label paste(dat$Var1,dat$Freq,sep ":") head(dat) library(ggplot2) lib…...

Linux的循环,bash的循环

Linux的循环,bash的循环 在 Linux 系统中&#xff0c;Bash 循环是最常用的循环实现方式&#xff08;Bash 是 Linux 默认的 Shell&#xff09;&#xff0c;但广义上“Linux 的循环”可能涉及其他 Shell 或编程语言的循环结构。以下是 Bash 循环的详细解析及其在 Linux 环境中的…...

【DeepSeek开发】Python实现股票数据可视化

代码&#xff1a; Github&#xff1a;Python实现股票数据可视化代码https://github.com/magolan2000/Data-visualization/tree/master 软件环境&#xff1a;PyCharm 2022.3.1 数据来源&#xff1a;akshare 最近DeepSeek可谓是热度不断&#xff0c;因此想评判一下DeepSeek的编程…...

华为小米vivo向上,苹果荣耀OPPO向下

日前&#xff0c;Counterpoint发布的手机销量月度报告显示&#xff0c;中国智能手机销量在2024年第四季度同比下降3.2%&#xff0c;成为2024年唯一出现同比下滑的季度。而对于各大智能手机品牌来说&#xff0c;他们的市场份额和格局也在悄然发生变化。 华为逆势向上 在2024年第…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

Python网页自动化Selenium中文文档

1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API&#xff0c;让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API&#xff0c;你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...