【C++ STL容器】:vector存放数据

news2024/11/26 12:29:24

前言

时不可以苟遇,道不可以虚行。


STL 中最常用的容器为:vector,暂且把它理解为我们之前学过的数组Array

一、创建一个vector容器(数组)

  • 添加头文件:#include <vector>
	vector<int> v;

二、向容器中插入数据

  • 利用内置函数:push_back()
 	v.push_back(10);
    v.push_back(20);
    v.push_back(30);
    v.push_back(40);

三、通过迭代器访问容器中的数据

1、利用起始和结束两个迭代器

  • 先声明两个迭代器,一个指向容器中的第一元素一个指向容器中的最后一个元素的下一个位置
    在这里插入图片描述
  • 然后利用一层 while 循环,依次遍历容器中的元素。
	vector<int>::iterator itBegin = v.begin();   //起始迭代器,指向容器中第一个元素
    vector<int>::iterator itEnd = v.end();       //结束迭代器,指向容器中最后一个元素的下一个位置
	
	while (itBegin != itEnd) {
         cout << *itBegin << endl;
         itBegin++;
     }

2、直接使用 for 循环

  • 使用 for 循环,定义一个临时的起始迭代器指向容器 v 中第一个元素,当 该迭代器 指向位置到达容器 v 中的最后一个元素的下一个位置时,结束循环。
	for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
        cout << *it << endl;
    }

3、利用 for_each 遍历算法

  • 需要添加头文件:#include <algorithm>,标准算法的头文件
  • 创建一个打印函数作为这个算法的第三个函数参数
	void myPrint(int val) {
	    cout << val << endl;
	}
	
	//最后一个参数为:传入函数名,回调作用
	for_each(v.begin(), v.end(), myPrint);
  • 跳转 for_each 函数的定义,其实现方法也是使用一层 for 循环。
    在这里插入图片描述
	for_each(_InputIterator __first, _InputIterator __last, _Function __f)
    {
	      // concept requirements
	      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
	      __glibcxx_requires_valid_range(__first, __last);
	      for (; __first != __last; ++__first)
		  		__f(*__first);
	      return __f; // N.B. [alg.foreach] says std::move(f) but it's redundant.
    }

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

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

相关文章

数商云渠道商协同系统对机械企业的应用价值体现

当前&#xff0c;国内机械市场环境较复杂&#xff0c;竞争日趋激烈&#xff0c;使用单一营销渠道模式已不能适应多变的环境&#xff0c;而代理商群体作为机械行业主流营销渠道&#xff0c;也在“价格战”环境下生存空间被进一步挤压&#xff0c;因此&#xff0c;如何采用领先的…

小啊呜产品读书笔记001:《邱岳的产品手记-13》第24讲 产品案例分析:PathSource的混乱与直观 25讲 产品世界的暗黑模式:操纵的诱惑

小啊呜产品读书笔记001&#xff1a;《邱岳的产品手记-13》第24讲 产品案例分析&#xff1a;PathSource的混乱与直观 & 第25讲 产品世界的暗黑模式&#xff1a;操纵的诱惑一、今日阅读计划二、泛读&知识摘录1、第24讲 产品案例分析&#xff1a;PathSource的混乱与直观2、…

进程与信号(一)

目录 一、前言 二、What Is a Process 三、Process Structure 1、The Process Table 2、Viewing Processes 3、System Processes 4、Process Scheduling 一、前言 进程和信号是 Linux 操作环境的基本组成部分。它们控制 Linux 和所有其他类 unix 计算机系统执行的几乎所…

全新版互联网大厂面试题,分类65份PDF,累计2000页

全新版互联网大厂面试题题库非常全面 包括 Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、Python、HTML、CSS、Vue、React、JavaS…

github-将本地代码上传到github上

1. 步骤&#xff1a; 准备&#xff1a;因为本地和远程是通过ssh加密的&#xff0c;所以需要生成秘钥和私钥 ssh-keygen -t rsa -C "youremailexample.com" "" 双括号里的是 关联 github的个人邮箱 cmd 里 输入 上述指令&#xff0c;然后 按三次 ent…

MySQL 进阶篇1.0

01-课程介绍 02-存储引擎-MySQL体系结构 03存储引擎-简介 查询建表语句 --默认存储引擎:InnoDBshow create table account; 查询当前数据库支持的存储引擎show engines; 04存储引擎-InnoDB介绍 开关为"ON": 表示每个innodb引擎的表都有一个idb表共享文件 …

2012-04 《信息资源管理 02378》真卷解析,逐题解析+背诵技巧

本系列博客合计 21 篇&#xff0c;每篇都将解析一张《信息资源管理》真卷&#xff0c;并附带答案解析与背诵技巧。 全国 2012 年 4 月自学考试信息资源管理试题&#xff08;02378&#xff09; 单选题 1、作为现代社会的支柱产业&#xff0c;信息产业的主体有&#xff1a;信息…

【雕爷学编程】Arduino动手做(109)---3路电压转换模块

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

MySQL 数据库 group by 语句怎么优化?

一、一个简单使用示例 我这里创建一张订单表 CREATE TABLE order_info ( id int NOT NULL AUTO_INCREMENT COMMENT 主键, order_no int NOT NULL COMMENT 订单号, goods_id int NOT NULL DEFAULT 0 COMMENT 商品id, goods_name varchar(50) NOT NULL COMMENT 商品名称, …

Kamiya丨Kamiya艾美捷狗CRP ELISA说明书

Kamiya艾美捷狗CRP ELISA预期用途&#xff1a; 狗CRP ELISA是一种高灵敏度的双位点酶联免疫分析&#xff08;ELISA&#xff09;&#xff0c;用于定量测定狗生物样品中的C反应蛋白&#xff08;CRP&#xff09;。仅供研究使用。 引言 急性期蛋白质是血浆蛋白质&#xff0c;其在…

开发者实践|如何实现云开发场景联动(内附结构图和教学视频)

一千个住户有一千种生活习惯&#xff0c;智能家居如何才能根据用户个性化的需求&#xff0c;实现真正的“智能”&#xff1f;这就需要家居产品之间智能排列&#xff0c;组合成多样化的场景联动模式。 下面我们就来说说如何通过Tuya OpenAPI来实现云开发场景联动&#xff0c;满…

使用 qrcode 生成二维码

qrcode 1 安装2 引入3 使用3.1 方法1 &#xff1a;QRCode.toCanvas()3.2 方法2 &#xff1a;QRCode.toDataURL()4 完整示例qrcode 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成 1 安装 npm install --save qrcode2 引入 …

本地部署开发环境过程和遇到的问题总结

一、 软件安装&#xff0c;环境配置 安装配置jdk(不能只有jre)安装配置maven安装配置git安装idea 二、拉项目 在云效代码管理中选择对应的库&#xff0c;复制其仓库地址 在idea中配置git 参考https://blog.csdn.net/qq_62701769/article/details/125029536 拉代码 URL输入…

叠氮试剂知识整理:6-azidohexan-1-amine|349553-73-7|6-叠氮基己胺

产品描述&#xff1a; 6-azidohexan-1-amine呈淡黄色或无色油状&#xff0c;含有叠氮基。叠氮化物可以与炔烃、DBCO和BCN进行铜催化的点击化学反应。NHS酯可以与胺基反应&#xff0c;形成稳定的酰胺键。点击化学反应效率高&#xff0c;即使在低浓度(μM)和低温(4oc)下&#xff…

安卓蓝牙耳机哪个牌子好?安卓手机蓝牙耳机推荐

目前&#xff0c;蓝牙耳机迅速流行于人们的视野当中&#xff0c;在各种场合中&#xff0c;肯定少不了一款蓝牙耳机&#xff0c;但现在的运动耳机可谓五花八门&#xff0c;虽然苹果手机广泛于市场&#xff0c;但是安卓品牌也在不断的采用最新技术的研发&#xff0c;下面是小编整…

Baklib知识分享|企业产品需求文档的特点

产品或服务是公司的核心。没有产品就没有业务。 虽然我们一直在努力追求卓越的产品&#xff0c;但我们有可能不能够达成目标。你可能经常基于你对产品的基本想法来构建产品。有时&#xff0c;您可能只是运行迭代或向您的产品团队提出特性需求。你不能只是临时拼凑一些构成你业…

分组后统计查询

【问题】 I am trying to select top values in a column based on the variable/field in another column. it is a very large tab delimited file. Input: Names col2 col3 col4 A A1 def 10 A A1 BBB 10 A A1 CED 10 A A1 fff 7.5 B B1…

2022秋季信息安全技术(期末复习)

目录 问答题考点&#xff1a; 1.简单替换密码加解密 2.DES算法的原理&#xff1a; ​编辑3.RSA算法的全过程&#xff1a; 4.基于公开密钥的数字签名方案 5.单项散列函数的特点&#xff1a; 6.简述信息的完整性、可用性、保密性 7.简述数字水印的主要特征 8.论述公开密钥…

Qt 工程添加windows库文件

文章目录背景编译出错查看openTrace函数在Qt 工程中添加库文件添加后pro文件背景 项目中用到了“C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared\evntrace.h" 文件中的接口OpenTrace 等。 编译出错 error LNK2019&#xff1a; 查看openTrace函数…

R语言中的LDA模型:对文本数据进行主题模型topic modeling分析

主题建模 在文本挖掘中&#xff0c;我们经常收集一些文档集合&#xff0c;例如博客文章或新闻文章&#xff0c;我们希望将其分成组&#xff0c;以便我们可以分别理解它们。最近我们被客户要求撰写关于主题模型的研究报告&#xff0c;包括一些图形和统计输出。主题建模是对这些…