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

C++(27): 标准库 <iterator>

目录

1. 核心概念

2. 基本语法

3. 特点

4. 特有成员函数与工具

5. 内存与性能

6. 示例代码

7. 成员函数与类型

8. 使用场景

9. 注意事项


1. 核心概念

        迭代器(Iterator) 是 C++ 中用于访问和遍历容器元素的通用接口,类似于指针,但支持更丰富的操作。

  • 抽象访问机制:通过迭代器,算法(如 sortfind)可以独立于具体容器(如 vectorlist)实现,遵循 STL 的设计理念。

  • 迭代器类别

    • 输入迭代器(Input Iterator):只读,单向遍历(如 istream_iterator)。

    • 输出迭代器(Output Iterator):只写,单向遍历(如 ostream_iterator)。

    • 前向迭代器(Forward Iterator):可读写,单向遍历(如 forward_list 的迭代器)。

    • 双向迭代器(Bidirectional Iterator):可双向移动(如 listset 的迭代器)。

    • 随机访问迭代器(Random Access Iterator):支持跳跃访问(如 vectordeque 的迭代器)。


2. 基本语法
#include <iterator>// 声明迭代器(以 vector 为例)
std::vector<int> vec = {1, 2, 3};
std::vector<int>::iterator it = vec.begin();  // 正向迭代器
std::vector<int>::reverse_iterator rit = vec.rbegin();  // 反向迭代器// 使用迭代器遍历
for (; it != vec.end(); ++it) {std::cout << *it << " ";  // 输出: 1 2 3
}// 使用反向迭代器逆序遍历
for (; rit != vec.rend(); ++rit) {std::cout << *rit << " ";  // 输出: 3 2 1
}// 使用迭代器遍历容器
for (ContainerType::iterator it = container.begin(); it != container.end(); ++it) {// 访问元素 *it
}

http://www.xdnf.cn/news/577045.html

相关文章:

  • 逆向音乐APP:Python爬虫获取音乐榜单 (1)
  • Podman(Pod Manager)简介
  • 嵌入式STM32学习——串口USART 2.1(串口发送字符串和字符)
  • 应用分享 | 软件定义架构如何满足GNSS模拟测试的开放性需求?
  • JDK9~17语法新特性全览:Java语言的持续进化
  • Python数据可视化高级实战之二——热力图绘制探究
  • C++ 输出流格式控制
  • 起重的技术
  • wd软件安装
  • origin绘图之【如何将横坐标/x设置为文字、字母形式】
  • 升级SpringBoot2到3导致的WebServices升级
  • 数字化,一个泛化的概念
  • 使用Mathematica生成随机曼陀罗花
  • vue3请求设置responseType: ‘blob‘,导致失败后获取不到返回信息
  • 基于vue框架的动漫论坛g2392(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • ISO 26262-5 硬件验证
  • Python雷达图实战教程:从入门到精通
  • 磁盘分区与挂载——笔记
  • 深入理解Java虚拟机之垃圾收集器篇(垃圾回收器的深入解析待完成TODO)
  • 框架与组件版本备忘
  • LlamaIndex
  • Keepalived 基于 VRRP 的高可用设计与故障排查
  • 学习日记-day12-5.21
  • 牛客网 NC16407 题解:托米航空公司的座位安排问题
  • 操作系统 第四章 -1
  • 链表-反转链表
  • JUC并发编程(下)
  • P1090 [NOIP 2004 提高组] 合并果子
  • SpringBoot3集成Oauth2.1——3access_token使用
  • 大模型如何助力数学可视化?