C++ STL迭代器完全指南:从新手到高手的奇幻之旅

一、迭代器:数据世界的万能遥控器 🎮

1.1 为什么需要迭代器?

想象你有一个装满玩具的箱子(容器),你想:

  • 🚗 逐个查看所有玩具(遍历)
  • 🧸 找到特定的玩具熊(查找)
  • ✨ 把玩具按大小排列(排序)

如果每个箱子的打开方式都不同(数组用下标、链表要指针、文件流特殊操作),你会疯掉的!迭代器就是解决这个问题的万能遥控器,它让所有容器都有了统一的操作接口!

vector<int> vec{
   1,2,3};
list<string> lst{
   "A","B","C"};
set<double> s{
   3.14, 2.718};

auto vec_it = vec.begin(); // 获取向量遥控器
auto lst_it = lst.begin(); // 获取链表遥控器
auto s_it = s.begin();     // 获取集合遥控器

二、迭代器五大神兽(类型全解析) 🦄

2.1 神兽能力评级表

迭代器类型 超能力 代表容器 特色招式
输入迭代器 单向前进,只读一次 istream 读取流数据
输出迭代器 单向前进,只写一次 ostream 写入流数据
前向迭代器 多次前向移动 forward_list 单链表遍历
双向迭代器 自由进退 list/map/set 逆向操作
随机访问 任意跳跃 vector/string []运算符、+=n

2.2 神兽使用说明书

(1) 随机访问迭代器(最强王者)
vector<int> vip{
   10,20,30,40,50};
auto remote = vip.begin();

cout << remote[3];    // 直接跳转到第4个位置 → 40
remote += 2;          // 前进2步
cout << *remote;      // 30
advance(remote, -1);  // 后退1步 → 20
(2) 双向迭代器(优雅舞者)
list<string> dance{
   "探戈","华尔兹","恰恰"}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值