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

STL中的容器,迭代器

一、容器

STL容器就是将运用最广泛的一些数据结构实现出来

常用的数据结构:数组, 链表,树, 栈, 队列, 集合, 映射表 等

这些容器分为序列式容器关联式容器两种:

​ 序列式容器:强调值的排序,序列式容器中的每个元素均有固定的位置。 

关联式容器:二叉树结构,各元素之间没有严格的物理上的顺序关系

二、迭代器

容器和算法之间粘合剂

提供一种方法,使之能够依序寻访某个容器所含的各个元素,而又无需暴露该容器的内部表示方式。

每个容器都有自己专属的迭代器

迭代器使用非常类似于指针

种类功能支持运算
输入迭代器对数据的只读访问只读,支持++、==、!=
输出迭代器对数据的只写访问只写,支持++
前向迭代器读写操作,并能向前推进迭代器读写,支持++、==、!=
双向迭代器读写操作,并能向前和向后操作读写,支持++、--,
随机访问迭代器读写操作,可以以跳跃的方式访问任意数据,功能最强的迭代器读写,支持++、--、[n]、-n、<、<=、>、>=
eg:
vector<int>::iterator pBegin = v.begin();

其中

  • v.begin() 返回一个迭代器,指向 vector 中的第一个元素。

  • pBegin 是一个 vector<int>::iterator 类型的迭代器,保存了 v 中第一个元素的位置。

遍历容器

for (vector<int>::iterator it = v.begin(); it != v.end(); ++it) {cout << *it << " ";  // 输出迭代器所指向的元素
}
  • ++it:移动迭代器到下一个元素。

  • --it:移动迭代器到上一个元素。

  • it++it--:后缀操作符,先使用迭代器再移动。

  • *it:解引用迭代器,获取它所指向的元素。

  • it == v.end():判断迭代器是否到达容器末尾。

迭代器的最大优势是与容器无关,提供了一致的接口,适用于不同类型的容器

http://www.dtcms.com/a/358996.html

相关文章:

  • 规律作息 + 养成好的习惯 + 考研倒计时 111 天 + 线面积分入门 1 下半部分
  • 【路由器】TP Link 路由器为何无法进入管理后台
  • HarmonyOS AppStorage:跨组件状态管理的高效解决方案
  • 2025年06月 Scratch 图形化(二级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 大模型训练中的 logits 是什么
  • npm基础
  • SNMPv3开发--snmpd.conf
  • Vue加载速度优化,verder.js和element.js加载速度慢解决方法
  • VGG改进(6):基于PyTorch的VGG16-SE网络实战
  • 项目管理方法适用场景对比
  • Linux kernel arm64 启动流程
  • ubuntu 安装conda, ubuntu24安装miniConda
  • python制作一个股票盯盘系统
  • 三重积分从入门到入土
  • 微风PLC编程软件下载(C4G02_Develop)
  • GESP5级2024年03月真题解析
  • Python实现全角数字转半角数字的完整教程
  • 一站式可视化运维:解锁时序数据库 TDengine 的正确打开方式
  • 数值分析——算法的稳定性
  • 鸿蒙服务端开发资料汇总
  • 中级统计师-统计实务-第三章 国民经济核算
  • 从支付工具到收益资产:稳定币在 Berachain 上的二次进化
  • 数位 dp
  • 函数(1)
  • React useState基本使用
  • 鸿蒙ArkTS 核心篇-13-if分支语句
  • 玄机靶场 | 第五届红明谷-异常行为溯源
  • Fortran二维数组去重(unique)算法实战
  • WSL使用指南
  • AUTOSAR进阶图解==>AUTOSAR_TR_FrancaIntegration