C++ STL中Vector的常用函数和用法

Vector(向量)是一个动态数组,在C++的STL(Standard Template Library)中有着丰富的操作函数。本文将介绍Vector的常用函数以及用法示例。

定义和创建

直接初始化

可以通过以下方式直接初始化一个Vector:

#include <vector>std::vector<int> myVector = {1, 2, 3, 4, 5}; // 直接初始化一个包含5个整数的Vector

使用构造函数初始化

也可以使用构造函数初始化一个Vector:

#include <vector>std::vector<int> myVector(5, 0); // 使用构造函数初始化一个包含5个元素,初始值为0的Vector

常用函数

1. push_back(val)

在向量末尾添加元素。

std::vector<int> myVector;
myVector.push_back(1);
myVector.push_back(2);
myVector.push_back(3);
// 现在myVector包含了{1, 2, 3}

2. pop_back()

移除向量末尾的元素。

std::vector<int> myVector = {1, 2, 3};
myVector.pop_back();
// 现在myVector包含了{1, 2}

3. back()

获取向量中最后一个元素的值。

std::vector<int> myVector = {1, 2, 3};
int lastElement = myVector.back(); // lastElement的值为3

4. erase(pos) 和 erase(first, last)

  • erase(pos): 删除指定位置的元素。

    myVector.erase(myVector.begin() + 2); // 删除索引为2的元素,即值为3
    // 现在myVector包含了{1, 2, 4, 5}
    
  • erase(first, last): 删除指定范围内的元素,左闭右开。

    myVector.erase(myVector.begin() + 1, myVector.begin() + 3); // 删除索引为1和2的元素,即值为2和4
    // 现在myVector包含了{1, 5}
    

5. insert(pos, val) 和 insert(pos, n, val)

  • insert(pos, val): 在指定位置插入一个元素。

    std::vector<int> myVector = {1, 2, 4, 5};
    myVector.insert(myVector.begin() + 2, 3); // 在索引为2的位置插入元素3
    // 现在myVector包含了{1, 2, 3, 4, 5}
    
  • insert(pos, n, val): 在指定位置插入n个相同的元素。

    std::vector<int> myVector = {1, 5};
    myVector.insert(myVector.begin() + 1, 3, 2); // 在索引为1的位置插入3个元素2
    // 现在myVector包含了{1, 2, 2, 2, 5}
    

示例

以下是一个完整的示例代码,演示了Vector的常用函数的用法:

#include <iostream>
#include <vector>int main() {// 直接初始化一个Vectorstd::vector<int> myVector = {1, 2, 3, 4, 5};std::cout << "Vector elements before insert: ";for (int num : myVector) {std::cout << num << " ";}std::cout << std::endl;// 在索引为2的位置插入元素100myVector.insert(myVector.begin() + 2, 100);std::cout << "Vector elements after insert 1: ";for (int num : myVector) {std::cout << num << " ";}std::cout << std::endl;// 在索引为1的位置插入3个元素50myVector.insert(myVector.begin() + 1, 3, 50);std::cout << "Vector elements after insert 2: ";for (int num : myVector) {std::cout << num << " ";}std::cout << std::endl;return 0;
}水平有限,有问题随时交流;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/787216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(学习日记)2024.03.28:UCOSIII第二十五节:常见任务管理函数

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

零基础入门 Oracle数据库:轻松上手

一、初识Oracle 今天我们要一起探索的是一款在全球范围内广泛应用的企业级关系型数据库管理系统——Oracle。你可以把它想象成一个超级智能的文件柜&#xff0c;不仅能存储海量的数据&#xff0c;还能高效地管理和检索这些数据。 二、安装与配置 首先&#xff0c;你需要从Oracl…

vue 响应式原理 Object.defineProperty(obj,‘属性名A‘,options);

目录 self简单讲解1. 视图影响数据2. 数据影响视图3. 视图数据双向影响页面展示 百度 self 简单讲解 get和set方法是ES5中提供的&#xff0c;因为是方法&#xff0c;所以可以进行判断&#xff0c;get 一般是要通过 return 返回的&#xff1b;而 set 是设置&#xff0c;不用返回…

GT收发器第六篇_GT channel内部时钟关系

文章目录 一、TX端时钟二、RX端时钟 一、TX端时钟 TX端可分为4个区域&#xff0c;分别为FPGA TX接口、PCS靠FPGA侧、PCS靠PMA侧、PMA&#xff0c;如下图。GTX/GTH发射器包括TXBUFFER和TX相位校准电路&#xff0c;以解决时钟域之间的相位差。TX相位校准电路用于TXBUFFER被旁路时…

书生·浦语大模型开源体系(二)笔记

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

【tensorflow框架神经网络实现鸢尾花分类_Keras】

文章目录 1、前言2、鸢尾花分类3、结果打印 1、前言 【tensorflow框架神经网络实现鸢尾花分类】一文中使用自定义的方式&#xff0c;实现了鸢尾花数据集的分类工作。在这里使用tensorflow中的keras模块快速、极简实现鸢尾花分类任务。 2、鸢尾花分类 import tensorflow as t…

营销日历丨2024年4月营销日历火热出炉!四月热点抢先看

4月1日 愚人节 愚人节是一个充满欢乐和恶搞的节日&#xff0c;品牌可以巧妙地利用这个节点来开展一些有趣的营销活动。在这个特殊的日子里&#xff0c;品牌可以走“愚人”的恶搞路线&#xff0c;但需要注意的是&#xff0c;营销活动要把握好尺度&#xff0c;避免过度恶搞&#…

面试算法3/400-寻找右区间

题目 给你一个区间数组 intervals &#xff0c;其中 intervals[i] [starti, endi] &#xff0c;且每个 starti 都 不同 。 区间 i 的 右侧区间 可以记作区间 j &#xff0c;并满足 startj > endi &#xff0c;且 startj 最小化 。注意 i 可能等于 j 。 返回一个由每个区…

STM32F103通过labview上位机上传温湿度数据到OneNET物联网平台

资料下载地址&#xff1a;STM32F103通过labview上位机上传温湿度数据到OneNET物联网平台 本实验通过两个STM32单片机设备分别测量室内外的温湿度&#xff0c;并把数据发送到上位机上传到ONENET物联网平台。 大体数据传输流程如下&#xff1a; 首先是注册OneNET平台账号&#…

Docker Desktop 在 Windows 上的安装和使用

目录 1、安装 Docker Desktop 2、使用 Docker Desktop &#xff08;1&#xff09;运行容器 &#xff08;2&#xff09;查看容器信息 &#xff08;3&#xff09;数据挂载 Docker Desktop是Docker的官方桌面版&#xff0c;专为Mac和Windows用户设计&#xff0c;提供了一个简…

Axure RP 9下载教程,产品经理实战指南!

Axure rp 9是产品经理必备的专业快速原型设计工具。Axure rp 9可快速高效地创建产品原型图&#xff0c;绘制APP和网页原型图、框架图、结构图等。但是Axuree rp 9下载在用户体验中的缺陷也相对明显&#xff0c;其设置交互方式相对繁琐&#xff0c;可视化不足、条件判断、变量、…

泰克Tektronix MDO3054混合域示波器

181/2461/8938产品概述&#xff1a; Tektronix MDO3054 示波器&#xff0c;混合域&#xff0c;500 MHz&#xff0c;4 通道&#xff0c;5 GS/s 泰克 MDO3054 混合域示波器是终极 6 合 1 集成示波器&#xff0c;包括可选的集成频谱分析仪、任意函数发生器、逻辑分析仪、协议分析…

audio_video_img图片音视频异步可视化加载

最近在做即时消息&#xff0c;消息类型除了文字还有音频、视频、图片展示&#xff0c;如果消息很多&#xff0c;在切换聊天框时&#xff0c;会有明显卡顿&#xff0c;后续做了懒加载&#xff0c;方案是只加载用户能看到的资源&#xff0c;看不到的先不加载&#xff1b; LazyAud…

acwing算法提高之图论--单源最短路的综合应用

目录 1 介绍2 训练 1 介绍 本专题用来介绍使用最短路算法&#xff08;spfa或dijkstra&#xff09;与其它算法&#xff08;dfs、二分、拓扑排序、动态规划等等&#xff09;结合起来解题。 2 训练 题目1&#xff1a;1135新年好 C代码如下&#xff0c; //版本1&#xff0c;使…

KNN算法 | K邻近:基础概念

目录 一. KNN算法原理二. KNN算法三要素1. K值的选择2. 距离2.1 欧氏距离2.2 曼哈顿距离(城市街区距离)2.3 切比雪夫距离(棋盘距离)2.4 闵可夫斯基距离2.5 标准化欧式距离2.6 余弦距离欧氏距离与余弦距离对比 3. 决策规则3.1 KNN分类任务多数表决法加权多数表决法 3.2 KNN回归任…

26番外1 对PE启动U盘的思考:制作启动盘,真的不用格式化!!!

番外1 对PE启动U盘的思考 我们在使用官方软件工具(如微PE工具箱)制作任何一个启动U盘的时候,他们总会提示我们:U盘需要格式化!!请备份好自己的数据!! 我一直在思考:为什么一定要格式化呢?需要格式化吗? 为了解决这个问题,我开始思考启动盘的本质. 启动盘的本质是什么?它怎么…

Android 自定义View 测量控件宽高、自定义viewgroup测量

1、View生命周期以及View层级 1.1、View生命周期 View的主要生命周期如下所示&#xff0c; 包括创建、测量&#xff08;onMeasure&#xff09;、布局&#xff08;onLayout&#xff09;、绘制&#xff08;onDraw&#xff09;以及销毁等流程。 自定义View主要涉及到onMeasure、…

风险与收益

风险与收益 影响资产需求的主要因素财富总量预期收益率资产的流动性影响流动性的主要因素 风险 如何降低风险系统风险和非系统风险机会集合与有效集合资产组合理论 影响资产需求的主要因素 影响资产需求的主要因素包括&#xff1a;财富总量、预期收益率、资产的流动性和风险。…

bashplotlib,一个有趣的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个有趣的 Python 库 - bashplotlib。 Github地址&#xff1a;https://github.com/glamp/bashplotlib 在 Python 中&#xff0c;绘制图形通常需要使用专门的绘图库&#xff0…

展锐平台camera添加底层水印

展锐平台camera添加水印&#xff0c;从底层用编码覆盖图像数组&#xff0c;保证上层获取图像水印的一致性 时间水印diff --git a/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3HWI.cpp b/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3HWI.cpp index f2b704f9d6..…