当前位置: 首页 > 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.xdnf.cn/news/1405387.html

相关文章:

  • DAY 18 推断聚类后簇的类型 - 2025.8.30
  • Megatron-LM(模型并行)
  • 2025 年 AI 发展十大预测:多模态融合、边缘 AI 普及将成核心增长点
  • Redis数据类型概览:除了五大基础类型还有哪些?
  • 【适度精简】Windows 7 旗舰版-emmy精简系统
  • SpringAI应用开发工程师高阶面试剧本与知识点全解析(含RAG、多租户、流式推理、企业落地场景)
  • leetcode2(移除元素)
  • windows32位下载谷歌浏览器的地址
  • Twitter舆情裂变链:指纹云手机跨账号协同机制提升互动率200%
  • 大数据在UI前端的应用深化研究:用户行为数据的跨平台关联分析
  • 优化器全指南:从原理到调优实战
  • DrissionPage 实战:高效爬取网页数据并保存为 CSV 的全流程解析
  • 什么是雪花算法
  • Western Blot 样本制备完整流程:从细胞 / 组织到变性样品的关键步骤与细节
  • Selenium自动化测试快速入门指南
  • 玄机靶场 | 第五届红明谷-异常行为溯源
  • MCP进阶指南:如何挑选最适合你的AI助手“装备“
  • [光学原理与应用-332]:ZEMAX - 序列模式与非序列模式的本质、比较
  • JavaScript 中的 this 关键字
  • Python远程文件管理移动端适配与跨平台优化实战
  • 【自记】MaxCompute 中 对于“数据量大、耗时久、非实时”任务的设置建议
  • Linux 下 Docker 容器部署指南(Java + Redis 示例)
  • 2025年水库单北斗GNSS变形监测TOP3系统推荐榜单
  • C++ 之 【map和set的模拟实现】(只涉及map和set的插入、迭代器以及map的operator[]函数)
  • 使用 JavaScript 构建 RAG(检索增强生成)库:原理与实现
  • TechPowerUp GPU-Z中文版:专业显卡检测工具
  • 多教师语言感知知识蒸馏:提升多语种语音情绪识别的新方法
  • FPGA 实现FOC 无刷电机控制器
  • 数字化赋能,鹧鸪云重塑光伏电站资产管理新范式
  • DDR5 介绍