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

vector<int> 的用法

vector<int> 是 C++ 标准模板库(STL)中的一个容器,用于存储动态大小的整数序列。以下是它的主要用法:

基本操作

1. 创建和初始化

#include <vector>
using namespace std;vector<int> v1;             // 空vector
vector<int> v2(5);          // 包含5个0
vector<int> v3(5, 10);      // 包含5个10
vector<int> v4 = {1, 2, 3}; // 初始化列表(C++11)
vector<int> v5(v4);         // 拷贝构造

2. 添加元素

v1.push_back(10);      // 在末尾添加元素10
v1.emplace_back(20);   // 更高效的添加方式(C++11)
v1.insert(v1.begin(), 5); // 在开头插入5

3. 访问元素

int a = v1[0];         // 不检查边界
int b = v1.at(1);      // 检查边界,越界抛出异常
int c = v1.front();    // 第一个元素
int d = v1.back();     // 最后一个元素

4. 删除元素

v1.pop_back();         // 删除最后一个元素
v1.erase(v1.begin());  // 删除第一个元素
v1.erase(v1.begin(), v1.begin()+2); // 删除前两个元素
v1.clear();            // 清空所有元素

5. 容量和大小

int size = v1.size();      // 元素数量
bool empty = v1.empty();   // 是否为空
v1.resize(10);             // 调整大小
int cap = v1.capacity();   // 当前分配的存储容量
v1.reserve(100);           // 预留空间

常用方法

遍历vector

// 使用下标
for (size_t i = 0; i < v1.size(); ++i) {cout << v1[i] << " ";
}// 使用迭代器
for (auto it = v1.begin(); it != v1.end(); ++it) {cout << *it << " ";
}// 范围for循环(C++11)
for (int num : v1) {cout << num << " ";
}

排序

#include <algorithm>
sort(v1.begin(), v1.end()); // 升序
sort(v1.rbegin(), v1.rend()); // 降序

查找

auto it = find(v1.begin(), v1.end(), 10);
if (it != v1.end()) {// 找到元素
}

高级用法

二维vector

vector<vector<int>> matrix(3, vector<int>(4)); // 3行4列矩阵
matrix[0][1] = 5; // 访问元素

交换两个vector

vector<int> v6 = {1, 2, 3};
vector<int> v7 = {4, 5, 6};
v6.swap(v7); // 交换内容

移动语义(C++11)

vector<int> v8 = std::move(v7); // 移动而非拷贝

性能提示

  1. 预先使用reserve()可以减少动态内存分配次数

  2. emplace_back()push_back()更高效

  3. 删除中间元素会导致后续元素移动,效率较低

vector<int> 是C++中最常用的容器之一,提供了动态数组的功能,同时保持了高效的随机访问能力。

相关文章:

vector<int> 的用法

vector<int> 是 C 标准模板库(STL)中的一个容器&#xff0c;用于存储动态大小的整数序列。以下是它的主要用法&#xff1a; 基本操作 1. 创建和初始化 #include <vector> using namespace std;vector<int> v1; // 空vector vector<int>…...

Java高级JVM知识点记录,内存结构,垃圾回收,类文件结构,类加载器

JVM是Java高级部分&#xff0c;深入理解程序的运行及原理&#xff0c;面试中也问的比较多。 JVM是Java程序运行的虚拟机环境&#xff0c;实现了“一次编写&#xff0c;到处运行”。它负责将字节码解释或编译为机器码&#xff0c;管理内存和资源&#xff0c;并提供运行时环境&a…...

名言警句1

1、嫉妒是欲望的衍生&#xff0c;而欲望则是成长的驱动&#xff0c;说到底每个人都是为了成长&#xff0c;为了不居人后&#xff0c;在成长的过程中&#xff0c;我们可以让欲望枝繁叶茂&#xff0c;但不能让嫉妒开花结果 2、人生无法奢求更多&#xff0c;我们有健康的身体&…...

【STL】queue

q u e u e queue queue 是一种容器适配器&#xff0c;设计为先进先出&#xff08; F i r s t I n F i r s t O u t , F I F O First\ In\ First\ Out,\ FIFO First In First Out, FIFO&#xff09;的数据结构&#xff0c;有两个出口&#xff0c;将元素推入队列的操作称为 p u …...

QXmpp入门

QXmpp 是一个基于 Qt 的 XMPP (Jabber) 协议实现库,用于开发即时通讯(IM)、聊天应用和实时协作系统。它支持客户端和服务端开发,提供完整的 XMPP 核心功能扩展。 1. 核心功能 XMPP 核心协议支持 支持 RFC 6120 (XMPP Core) 和 RFC 6121 (XMPP IM) 基础功能:认证、在线状态…...

使用cursor为代码添加注释

1. add-comments.md英文 You are tasked with adding comments to a piece of code to make it more understandable for AI systems or human developers. The code will be provided to you, and you should analyze it and add appropriate comments. To add comments to …...

20250330-傅里叶级数专题之离散时间傅里叶变换(4/6)

4. 傅里叶级数专题之离散时间傅里叶变换 20250328-傅里叶级数专题之数学基础(0/6)-CSDN博客20250330-傅里叶级数专题之傅里叶级数(1/6)-CSDN博客20250330-傅里叶级数专题之傅里叶变换(2/6)-CSDN博客20250330-傅里叶级数专题之离散傅里叶级数(3/6)-CSDN博客20250330-傅里叶级数专…...

漏洞挖掘---迅饶科技X2Modbus网关-GetUser信息泄露漏洞

一、迅饶科技 X2Modbus 网关 迅饶科技 X2Modbus 网关是功能强大的协议转换利器。“X” 代表多种不同通信协议&#xff0c;能将近 200 种协议同时转为 Modbus RTU 和 TCP 服务器 。支持 PC、手机端等访问监控&#xff0c;可解决组态软件连接不常见控制设备难题&#xff0c;广泛…...

Java进阶——位运算

位运算直接操作二进制位&#xff0c;在处理底层数据、加密算法、图像处理等领域具有高效性能和效率。本文将深入探讨Java中的位运算。 本文目录 一、位运算简介1. 与运算2. 或运算异或运算取反运算左移运算右移运算无符号右移运算 二、位运算的实际应用1. 权限管理2. 交换两个变…...

golang strings包常用方法

方法名称功能描述示例strings.Join将字符串切片中的元素连接成一个字符串&#xff0c;使用指定的分隔符。strings.Join([]string{"hello", "world"}, " ")strings.HasPrefix检查字符串是否以指定的前缀开头。strings.HasPrefix("hello"…...

网络安全之前端学习(css篇2)

那么今天我们继续来学习css&#xff0c;预计这一章跟完后&#xff0c;下一章就是终章。然后就会开始js的学习。那么话不多说&#xff0c;我们开始吧。 字体属性 之前讲到了css可以改变字体属性&#xff0c;那么这里来详细讲一讲。 1.1字体颜色 之前讲到了对于字体改变颜色食…...

PS底纹教程

1.ctrlshiftU 去色 2.新建纯色层 颜色中性灰&#xff1b;转换为智能对象 3.纯色层打开滤镜&#xff08;滤镜库&#xff09;&#xff1b; 素描下找到半调图案&#xff0c;数值调成大小5对比1&#xff1b; 再新建一层&#xff0c;素描下找到撕边&#xff0c;对比拉到1&#x…...

NX/UG二次开发—CAM获取加工操作的最低Z深度值的方法

网上已经有些大佬给出了解决方案&#xff0c;但是基本有两种&#xff0c;一种内部函数&#xff0c;另外一种就是导出程序的刀轨文件找坐标计算。使用内部函数进行操作&#xff0c;可以自己学习&#xff0c;不做解释。下面只是针对第二种进行说明&#xff0c;参考胡君老师的教程…...

解决pyinstaller GUI打包时无法打包图片问题

当我们的python GuI在开发时。经常会用到图片作为背景&#xff0c;但是在打包后再启动GUI后却发现&#xff1a;原先调试时好端端的背景图片竟然不翼而飞或者直接报错。这说明图片没有被pyinstaller一起打包…… 要解决这个问题很简单&#xff0c;就是更改图片的存储方式。 tk…...

蓝桥杯真题------R格式(高精度乘法,高精度加法)

对于高精度乘法和加法的同学可以学学这几个题 高精度乘法 高精度加法 文章目录 题意分析部分解全解 后言 题意 给出一个整数和一个浮点数&#xff0c;求2的整数次幂和这个浮点数相乘的结果最后四舍五入。、 分析 我们可以发现&#xff0c;n的范围是1000,2的1000次方非常大&am…...

Nginx — Nginx安装证书模块(配置HTTPS和TCPS)

一、安装和编译证书模块 [rootmaster nginx]# wget https://nginx.org/download/nginx-1.25.3.tar.gz [rootmaster nginx]# tar -zxvf nginx-1.25.3.tar.gz [rootmaster nginx]# cd nginx-1.25.3 [rootmaster nginx]# ./configure --prefix/usr/local/nginx --with-http_stub_…...

回调后门基础

回调后门概述 回调后门&#xff08;Reverse Shell&#xff09;是一种常见的攻击方式&#xff0c;攻击者通过受害主机主动连接到远程服务器&#xff08;攻击者控制的机器&#xff09;&#xff0c;从而获得远程控制权限。 工作原理 受害者主机 运行一个恶意代码&#xff0c;尝…...

深度学习 Deep Learning 第13章 线性因子模型

深度学习 Deep Learning 第13章 线性因子模型 内容概要 本章深入探讨了线性因子模型&#xff0c;这是一类基于潜在变量的概率模型&#xff0c;用于描述数据的生成过程。这些模型通过简单的线性解码器和噪声项捕捉数据的复杂结构&#xff0c;广泛应用于信号分离、特征提取和数…...

【个人笔记】用户注册登录思路及实现 springboot+mybatis+redis

基本思路 获取验证码接口 验证码操作用了com.pig4cloud.plugin的captcha-core这个库。 AccountControl的"/checkCode"接口代码&#xff0c;通过ArithmeticCaptcha生成一张验证码图片&#xff0c;通过text()函数得到验证码的答案保存到变量code&#xff0c;然后把图…...

华为OD机试2025A卷 - 正则表达式替换(Java Python JS C++ C )

最新华为OD机试 真题目录:点击查看目录 华为OD面试真题精选:点击立即查看 题目描述 为了便于业务互交,约定一个对输入的字符串中的下划线做统一替换。 具体要求如下: 输入字符串,将其中包含的每一个下划线“_”,使用特殊字符串(^|$|[,+])替换,并输出替换后的结果…...

WPS宏开发手册——Excel常用Api

目录 系列文章4、Excel常用Api4.1、判断是否是目标工作excel4.2、获取源工作表和目标工作表的引用4.3、获取单元格的值4.4、设置单元格的值4.5、合并单元格4.6、获取源范围4.7、获取源范围行数4.8、通过源来获取单元格的值4.9、设置单元格的背景颜色4.10、设置单元格的文字颜色…...

数据库基础入门

关系型数据库 vs. 非关系型数据库SQL 基础 & ORM 框架使用一、数据库概述 数据库(Database)是 存储和管理数据 的系统,主要分为 关系型数据库(Relational Database) 和 非关系型数据库(NoSQL)。 📌 数据库的作用: ✅ 存储:持久化数据,避免数据丢失。 ✅ 管理…...

聚类(Clustering)基础知识3

文章目录 一、聚类的性能评价1、聚类性能评价&#xff08;1&#xff09;聚类性能评价方法&#xff1a; 2、参考模型 (reference model)&#xff08;1&#xff09;数据集&#xff1a;&#xff08;2&#xff09;聚类结果&#xff1a;&#xff08;3&#xff09;参考模型&#xff1…...

RK3588使用笔记:设置程序/服务开机自启

一、前言 一般将系统用作嵌入式设备时肯定要布置某些程序&#xff0c;这时候就需要对程序设置开机自己&#xff0c;否则每次都要人为启动&#xff0c;当有些嵌入式系统未连接显示屏或者无桌面环境去操作启动程序时&#xff0c;程序自启就是必须的了&#xff0c;本文介绍在纯li…...

Python-数据处理

第十五章 生成数据 安装Matplotlib&#xff1a;通过pip install matplotlib命令安装库。绘制折线图的核心语法为&#xff1a; import matplotlib.pyplot as plt x_values [1, 2, 3] y_values [1, 4, 9] plt.plot(x_values, y_values, linewidth2) plt.title(&quo…...

LoRA技术全解析:如何用4%参数量实现大模型高效微调

引言 在当今的人工智能领域&#xff0c;大型语言模型&#xff08;LLM&#xff09;已经成为革命性的技术。然而&#xff0c;这些模型通常拥有数十亿个参数&#xff0c;全量微调成本极高。本文将为初级开发者详细讲解LoRA&#xff08;Low-Rank Adaptation&#xff09;技术&#…...

职测-言语理解与表达

成语填空 成语的误用 误用①&#xff1a;望文生义【按成语的字面意思去理解&#xff0c;导致误用】 成语解释如数家珍对列举的事物或叙述的故事十分熟悉&#xff0c;但熟悉的对象不能是自己收藏的宝贝目无全牛比喻技术熟练到得心应手的境地登堂入室比喻学问或技艺由浅入深&a…...

深度学习处理文本(2)

建立词表索引 将文本拆分成词元之后&#xff0c;你需要将每个词元编码为数值表示。你可以用无状态的方式来执行此操作&#xff0c;比如将每个词元哈希编码为一个固定的二进制向量&#xff0c;但在实践中&#xff0c;你需要建立训练数据中所有单词&#xff08;​“词表”​&…...

python实现股票数据可视化

最近在做一个涉及到股票数据清洗及预测的项目&#xff0c;项目中需要用到可视化股票数据这一功能&#xff0c;这里我与大家分享一下股票数据可视化的一些基本方法。 股票数据获取 目前&#xff0c;我已知的使用python来获取股票数据方式有以下三种: 爬虫获取&#xff0c;实现…...

JavaScript DOM与元素操作

目录 DOM 树、DOM 对象、元素操作 一、DOM 树与 DOM 对象 二、获取 DOM 元素 1. 基础方法 2. 现代方法&#xff08;ES6&#xff09; 三、修改元素内容 四、修改元素常见属性 1. 标准属性 2. 通用方法 五、通过 style 修改样式 六、通过类名修改样式 1. className 属…...