C++ vector的使用

C++中的vector是一个动态数组,它提供了一种灵活的方式来存储和操作元素集合。vector是C++标准模板库(STL)的一部分,它允许你添加、删除、排序和搜索元素。以下是一些基本的vector操作:

  1. 声明和初始化:

    std::vector<int> vec;
    std::vector<int> vec(10); // 初始化一个有10个元素的vector,元素值未指定
    std::vector<int> vec(10, 1); // 初始化一个有10个元素的vector,每个元素都是1
    std::vector<int> vec = {1, 2, 3}; // 初始化一个包含3个元素的vector
    
  2. 访问元素:

    int val = vec[0]; // 获取第一个元素的值
    vec[1] = 5; // 设置第二个元素的值为5
    
  3. 添加元素:

    vec.push_back(4); // 在vector的末尾添加一个元素
    vec.insert(vec.begin() + 2, 6); // 在索引2的位置插入一个元素
    
  4. 删除元素:

    vec.pop_back(); // 删除vector的最后一个元素
    vec.erase(vec.begin() + 1); // 删除索引为1的元素
    
  5. 大小和容量:

    size_t size = vec.size(); // 获取vector中元素的数量
    size_t capacity = vec.capacity(); // 获取vector分配的内存大小
    
  6. 清空vector:

    vec.clear(); // 移除vector中的所有元素
    
  7. 遍历vector:

    for (int i : vec) {std::cout << i << " ";
    }
    
  8. 查找元素:

    auto it = std::find(vec.begin(), vec.end(), 4); // 查找值为4的元素
    if (it != vec.end()) {std::cout << "Found 4 at position: " << it - vec.begin() << std::endl;
    }
    
  9. 排序:

    std::sort(vec.begin(), vec.end()); // 从小到大排序
    
  10. 修改容量:

    vec.resize(15); // 将vector的大小调整为15,如果当前元素少于15个,则用默认值填充
    
  11. 使用emplace_back:

    vec.emplace_back(7); // 在vector末尾添加一个值为7的元素,相比push_back,emplace_back更高效,因为它直接在vector内部构建对象
    
  12. 使用backfront:

    int lastElement = vec.back(); // 获取vector的最后一个元素
    vec.front() = 10; // 设置vector的第一个元素的值为10
    

vector是一个功能强大的容器,它在C++程序中被广泛使用。了解这些基本操作可以帮助你更好地利用vector的功能。

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

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

相关文章

复习python面向对象

复习python面向对象 1.面向对象定义2.类特殊方法3.封装property装饰器 4.继承多重继承 5.多态6.属性和方法 1.面向对象定义 在讲面向对象之前&#xff0c;先来看看面向过程。 面向过程&#xff1a;将一个功能分解成一个一个小的步骤&#xff0c;通过完成一个个步骤来完成一个程…

Vue 中 $nextTick 的作用是什么?

目录 一、NextTick是什么 为什么要有nexttick 二、使用场景 三、实现原理 一、NextTick是什么 官方对其的定义 在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法&#xff0c;获取更新后的 DOM 什么意思呢&#xff1f; 我们可以理解成&#xff0c…

陪诊系统|陪诊小程序成品|陪诊系统功能

随着人们对健康的日益关注以及医疗技术的不断进步&#xff0c;陪诊小程序应运而生&#xff0c;通过提供陪同就医、医疗服务和健康管理等功能为患者和家庭成员提供了更多的便利和选择。本文将分析陪诊小程序的关键功能&#xff0c;以便更好地理解其在医疗领域的作用。 在陪诊小程…

闲鱼最新暴力玩法,靠低价渠道单日收益1000+,附详细实操及渠道

详情介绍 今天给大家分享的是最近非常爆火的&#xff0c;外面收费998的各大会员低价渠道项目&#xff0c;购买实操之后发现这个项目确实盈利&#xff0c;而且收益也不错&#xff0c;并把主要的低价渠道获取方式提供给大家

【C语言】动态分配内存

内存的五大分区 1、堆区&#xff08;heap&#xff09;——由程序员分配和释放&#xff0c; 若程序员不释放&#xff0c;程序结束时一般由操作系统回收。注意它与数据结构中的堆是两回事 2、栈区&#xff08;stack&#xff09;——由编译器自动分配释放 &#xff0c;存放函数的…

【2024最新华为OD-C卷试题汇总】字符串分割(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 文章目录 前…

智能家居2 -- 实现网络控制模块

这一模块的思路和前面的语言控制模块很相似&#xff0c;差别只是调用TCP 去控制 废话少说&#xff0c;放码过来 增添/修改代码 socket_interface.c #include <pthread.h>#include "socket_interface.h" #include "control.h" #include "socke…

由北京车展想到的,技术红利时代的“重启”

北京车展刚刚落幕&#xff0c;雷军和周鸿祎成为网红&#xff0c;国产品牌站上王座。与此同时&#xff0c;马斯克“光速”访华&#xff0c;FSD酝酿入华再掀新竞争。华为在车展前发布的智驾新品牌“乾崑”&#xff0c;同样在现场广受关注。它们的精彩&#xff0c;让燃油车羡慕。 …

【Vue】pinia

pinia 官网:https://pinia.vuejs.org/zh/ 搭建 pinia 环境 第一步&#xff1a;npm install pinia --save 第二步&#xff1a;操作src/main.ts import { createApp } from vue import App from ./App.vue/* 引入createPinia&#xff0c;用于创建pinia */ import { createP…

新一代智慧音视频平台,企业必备新基建

随着5G、云计算、实时音视频、多模态、大模型、数字人等前沿技术的发展&#xff0c;企业与客户的交互方式正加速趋于移动化、视频化。 国家有关部门也相继出台系列政策法规&#xff0c;确保线上业务安全合规&#xff0c;以保障消费者权益。如&#xff0c;针对保险、银行、证券…

C#语言进阶(四) 枚举器和迭代器

总目录 C# 语法总目录 枚举器和迭代器 枚举器和迭代器1. 枚举器2. 可枚举对象3. 迭代器4. 迭代器语义5. yield break 语句6. 组合序列 枚举器和迭代器 1. 枚举器 枚举器(Enumerator)是一个只读的且只能在值序列上前移的游标。 任何具有MoveNext方法和Current属性的对象都被称…

STM32快速入门(定时器之输入捕获)

STM32快速入门&#xff08;定时器之输入捕获&#xff09; 前言 本节主要讲解STM32利用通用定时器&#xff0c;在输入引脚出现指定电平跳变时&#xff0c;将CNT的值锁存到CCR寄存器当中&#xff0c;从而计算PWM波形的频率、占空比、脉冲间隔、电平持续时间等。其功能的应用有&…

QT_BEGIN_NAMESPACE

最近碰到了QT_BEGIN_NAMESPACE这个宏&#xff0c;这个宏就是一个命名空间&#xff0c;意思是如果不用这个宏&#xff0c;可能我qwidget定义的一个变量a会和标准C定义的变量a冲突对不&#xff0c;Qt通过这个命名空间&#xff0c;将所有类和函数封装在一个作用域里&#xff0c;防…

浅谈自己用过最好用的AI工具概括

个人最经常用的AI工具的其实是Copilot&#xff0c;但是也有别的一些最好用的AI工具&#xff0c;包括&#xff1a; OpenAI GPT-3&#xff1a;这是一个自然语言生成模型&#xff0c;具有强大的语言理解和生成能力。它可以用于各种任务&#xff0c;如文字生成、自动回复和文本摘要…

brpc profiler

cpu profiler cpu profiler | bRPC MacOS的额外配置 在MacOS下&#xff0c;gperftools中的perl pprof脚本无法将函数地址转变成函数名&#xff0c;解决办法是&#xff1a; 安装standalone pprof&#xff0c;并把下载的pprof二进制文件路径写入环境变量GOOGLE_PPROF_BINARY_PA…

K8S快速入门

K8S快速入门 在学习k8s的过程&#xff0c;虽然官网给出的示例教程很简单&#xff0c;但是由于网络和环境的差异&#xff0c;导致实际操作的时候踩了很多坑&#xff0c;下面记录一下自己的操作步骤&#xff0c;方便需要的人参考&#xff0c;也方便以后的自己。 参考官网的资料…

Windows 10 中使用 Montreal-Forced-Aligner (MFA) 实现音频和文本强制对齐

文章目录 一、实现目标二、安装 Montreal-Forced-Aligner1、使用 Anaconda 虚拟环境2、修改默认下载路径3、安装 montreal-forced-aligner 及相关第三方包4、验证是否安装成功 三、下载声学模型和发音词典1、命令行方式下载2、手动方式下载 四、强制对齐1、准备音频及对应文本2…

短视频矩阵系统电脑端/手机版双端加盟saas技术源头开发

短视频矩阵系统是为了帮助用户更高效地管理、编辑、发布和分析短视频内容而设计的综合性平台。这种系统通常包含电脑端和手机端两个部分&#xff0c;每个部分都有其特定的功能模型&#xff0c;以适应不同设备的操作习惯和使用场景。以下是根据搜索结果中提供的信息&#xff0c;…

Debian是什么?有哪些常用命令

目录 一、Debian是什么&#xff1f; 二、Debian常用命令 三、Debian和CentOS的区别 四、Debian和CentOS的优缺点 五、Debian和CentOS的运用场景 一、Debian是什么&#xff1f; Debian是一种流行的开源Linux操作系统。 Debian是一个以Linux内核为基础的操…

vue3 element-plus表单form验证规则设置的require:true无效

必填项为空校验&#xff0c;valid第一次为true&#xff0c;再点值为false 引入FormInstance &#xff0c;校验代码改为以下&#xff1a; import { ElMessage, FormInstance } from element-plus const ruleFormRef ref<FormInstance>()const submitForm async (formEl:…