【C++】| 03——STL | 迭代器

news2025/1/23 14:56:52

系列文章目录

【C++】| 01——泛型编程 | 模板
【C++】| 02——STL | 初识
【C++】| 03——STL | 迭代器
【C++】| 04——STL | 容器_vector


文章目录

  • 1. 什么是迭代器
  • 2. 迭代器的分类
  • 3. 不同容器对应的迭代器
  • 4. 迭代器的好处
  • 5. 迭代器的操作


1. 什么是迭代器

 迭代器就是指向容器内元素的对象(与指针类似)。
 一般我们用迭代器遍历/访问容器内元素(类似 指针访问地址)。迭代器是容器/算法的桥梁。

2. 迭代器的分类

根据功能分为五类

  1. 输入迭代器:它们是所有迭代器中最弱的,功能非常有限。它们只能用于单通道算法,即那些按顺序处理容器的算法,这样就不会存在元素被多次访问。
  2. 输出迭代器:和输入迭代器一样,只能用于单通道算法,但不能用于访问元素,而是用于分配元素。
  3. 正向迭代器:它包含输入/输出迭代器的全部功能。但是,它只能向前移动,每次移动一个。
  4. 双向迭代器:它具有正向迭代器的所有特性,同时可以在两个方向上移动,即双向。
  5. 随机访问迭代器:它是最强大的迭代器。它并不局限于顺序移动,它们可以随机访问容器内的任何元素。它的功能与指针相同。
    在这里插入图片描述

不同类型迭代器差异图

在这里插入图片描述

3. 不同容器对应的迭代器

不同容器支持的迭代器不同。
在这里插入图片描述

4. 迭代器的好处

  1. 方便编程 使用迭代器遍历容器元素不用关系容器大小等
  2. 代码复用性
  3. 动态处理 轻松扩容/缩小

5. 迭代器的操作

在这里插入图片描述
迭代器是对容器进行操作 后面 容器章节 会体现怎么使用迭代器。先了解以下可以啦。

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

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

相关文章

基于MATLAB的路面裂缝检测识别算法代码(GUI系统设计+图像预处理+裂缝检测)

资源地址: 基于MATLAB的路面裂缝检测识别算法代码(GUI系统设计图像预处理裂缝检测)资源-CSDN文库 主要内容: 1、运行Gui_Main.m程序,得到GUI界面 2、首先点击载入图像文件 3、后续便可以点击右侧的其他按钮进行分析…

C++linux高并发服务器项目实践 day10

Clinux高并发服务器项目实践 day10 守护进程进程组会话进程组、会话操作函数守护进程守护进程的创建步骤 线程线程和进程的区别线程之间共享和非共享资源线程操作线程创建线程退出线程参与线程分离线程取消 线程属性 守护进程 在UNIX系统中,用户通过终端登录系统后…

DCMM评估之战略维度沟通

01 数据战略规划过程 过程描述: 过程描述如下:a) 识别利益相关者,明确利益相关者的需求;b) 数据战略需求评估,组织对业务和信息化现状进行评估,了解业务和信息化对数据的需求;c) 数据战略制定,包含但不限于:1) 愿景陈述,其中包含数据管理原则、目的和目标;2) 规划…

SpringCloud 远程调用Feign、网关Gateway、配置中心Nacos、微服务架构小结、Nacos搭建集群

统一检查maven maven依赖出错的解决 注意代码格式化。因代码格式混乱,导致代码出错,pom.xml出现重复的parent标签 学习方法,听得懂为什么要这么做,要远远比 怎么做 重要的多 一、远程调用Feign 能够使用Feign进行远程调用能够…

【C++学习】创建二维动态数组

1.指针 创建二维动态数组_牛客题霸_牛客网 (nowcoder.com) 使用指针的指针 使用指针的指针可以很方便地创建动态的二维数组,其关键在于使用两层指针进行分配。 以下是一个动态创建n行m列的二维数组的示例代码: int **arr new int*[n]; // 创建一个…

深度学习训练营J2:ResNet50v2算法分析与实战

深度学习训练营J2:ResNet50v2算法分析与实战 原文链接环境介绍0.引言论文分析与解读1.ResNet50和ResNet50v2之间的结构对比2.不同结构之间的尝试 3.关于激活的不同尝试4.文章结果 ResNet50v2架构复现5.残差结构6.模块构建7.架构展示以及网络构建 8.网络结构打印ResNet50v2完整结…

Python——1

一、注释 (1)单行注释:#需要注释的内容(#) (2)多行注释:需要注释的内容(三引号) 二、变量及变量类型 1.变量 语法定义:变量名 变量值&#…

【小程序】微信云托管服务

链接 官方文档 云托管官网 特点 无需自提供服务,有云托管平台自动分配,并自动缩容/扩容支持多种语言及模板实例采用容器化管理方式实现服务部署支持小程序内网访问,仅公网测试,提供足够的安全防护,微信用户就近接入…

Python:BeautifulSoup库介绍

BeautifulSoup库介绍 1、BeautifulSoup是Python中的一个第三方库,其最主要的功能是处理HTML文档 ⑴查找HTML文档中的指定标签 ⑵获取HTML文档中指定标签的标签名、标签值、标签属性等 ⑶修改HTML文档中指定标签 2、BeautifulSoup库将HTML文档解析为一…

服务器如何做端口映射,使服务器之间通信,然后访问目标网站(baidu.com)

文章目录 服务器如何做端口映射,使服务器之间通信,然后访问目标网站(baidu.com)问题缘由所需环境操作步骤1. 目的服务器设置2. 中间服务器设置3. 修改客户端 总结 服务器如何做端口映射,使服务器之间通信,然后访问目标…

DataX读取Hive Orc格式表丢失数据处理记录

文章目录 问题问题概述问题详细描述 原因解决方法修改源码验证 问题 问题概述 DataX读取Hive Orc存储格式表数据丢失 问题详细描述 同步Hive表将数据发送到Kafka,Hive表A数据总量如下 SQL:select count(1) from A; 数量:19397281使用Dat…

HTML小游戏25 —— HTML5拉杆子过关小游戏(附完整源码)

本节教程我会带大家使用 HTML 、CSS和 JS 来制作一个HTML5拉杆子过关小游戏 ✨ 前言 🕹️ 本文已收录于🎖️100个HTML小游戏专栏:100个H5游戏专栏https://blog.csdn.net/qq_53544522/category_12064846.html🎮 目前已有100小游戏…

交叉编译--build、--host、--target、--prefix

一、编译例子 ./configure --build编译平台 --host运行平台 --target目标平台 [各种编译参数]build:表示目前我们正在运行的平台名称是什么,如:当前我们是在电脑上编译该系统,那么我们的 --build 就可能是 x86,如果…

如何避免因为 Kubernetes 和 Kafka 而被解雇

本文由 Bing AI 生成。Bing AI 真是尽显程序员本色,我等它生成文章的过程中发现出现了 Markdown 语法,结果点复制过来的就是直接 Markdown 文档。 Kubernetes 和 Kafka 是两个非常流行的技术,它们分别用于容器编排和分布式消息传递。它们的优…

XSD2Code++ Crack

XSD2Code Crack XSD2Code是为那些希望在将复杂的XML和JSON模式转换为NetCore时节省时间的开发人员设计的。它使用简单且灵活,可以很容易地集成到任何项目中,并适应开发人员的需求。它通过直观、可定制的用户界面,真正提高了生产力。使用XSD2C…

【SpringCloud】初步认识微服务

文章目录 1.认识微服务1.1微服务由来1.2为什么需要微服务? 2.两种架构2.1.单体架构2.2.分布式架构 3.微服务的特点4.SpringCloud5.总结最后说一句 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为…

K8s基础10——数据卷、PV和PVC、StorageClass动态补给、StatefulSet控制器

文章目录 一、数据卷类型1.1 临时数据卷(节点挂载)1.2 节点数据卷(节点挂载)1.3 网络数据卷NFS1.3.1 效果测试 1.4 持久数据卷(PVC/PV)1.4.1 效果测试1.4.2 测试结论 二、PV、PVC生命周期2.1 各阶段工作原理…

华为机试真题 数组奇偶排序

人寄语: 准备面试华为外包德科,记录一下一些面试题; 牛客网代码提交的坑,可以看一下下面的第一道题,ide本地编译通过,牛客网死活不通过,提交代码提示:返回非0。原因分析   查询得知,结果非零的意思的代码退出的时候不是以正常的0退出的,而是非0状态,也就是代码出错…

操作系统进程线程(三)—进程状态、同步互斥、锁、死锁

Linux下同步机制 POSIX信号量:可用于进程同步,也可用于线程同步POSIX互斥锁条件变量:只能用于线程同步。 进程同步的四种方法 临界区 对临界资源进行访问。 同步和互斥 同步:多个进程因为合作产生直接制约关系,使…

教你如何正确使用ChatGPT

目录 前言 一、ChatGPT Sidebar 二、免费镜像 三、共享账号 总结 前言 ChatGPT 是一种基于深度学习技术的自然语言处理工具,能够用于文本生成、语言翻译等任务。然而,其使用需要一定的技术基础和相关知识,不少用户可能会遇到一些问题。…