c++ day 13
今天来认识c++里面的迭代器
C++迭代器(Iterator)是一种用于遍历容器(如数组、向量、链表等)中元素的抽象概念。它允许你通过简单的接口在容器中移动,并访问容器中的元素,而无需了解底层数据结构的细节。迭代器提供了一种统一的方式来访问不同类型容器的元素,使得代码更加灵活和可复用。
在C++中,标准库(STL)提供了许多不同类型的迭代器,每种容器都有对应的迭代器。以下是一些常见的STL容器迭代器:
-
begin()
和end()
:begin()
:返回指向容器第一个元素的迭代器。end()
:返回指向容器最后一个元素后面的虚拟元素的迭代器,也称为尾后迭代器。
-
单向迭代器(Forward Iterator):
- 仅允许向前遍历容器中的元素。
- 适用容器:
std::forward_list
(单向链表)。
-
双向迭代器(Bidirectional Iterator):
- 允许向前和向后遍历容器中的元素。
- 适用容器:
std::list
(双向链表)。
-
随机访问迭代器(Random Access Iterator):
- 允许以常数时间访问容器中的任意元素。
- 支持
+
和-
操作,可以跳跃性地访问元素。 - 适用容器:
std::vector
、std::deque
和普通数组等。
使用迭代器遍历容器的通用方式是通过循环,如下所示:
#include <iostream> #include <vector> int main() { std::vector<int> myVector = {1, 2, 3, 4, 5}; // 使用迭代器遍历 vector for (std::vector<int>::iterator it = myVector.begin(); it != myVector.end(); ++it) { std::cout << *it << " "; // 输出当前元素值 } return 0; }
在C++11中引入了更便捷的迭代器访问方式,使用auto关键字可以自动推导迭代器类型,如下所示:
#include <iostream> #include <vector> int main() { std::vector<int> myVector = {1, 2, 3, 4, 5}; // 使用auto关键字简化迭代器类型声明 for (auto it = myVector.begin(); it != myVector.end(); ++it) { std::cout << *it << " "; // 输出当前元素值 } return 0; }
除了使用++
来移动迭代器外,还可以使用其他运算符来进行定位和遍历。例如,--
用于向后移动双向迭代器,+=
和-=
用于在随机访问迭代器中跳跃性地移动。既然提到c++的特性auto了 那我今天就来复习复习auto的有关概念
写在了另一个博客里面了(32条消息) c++里面的auto类型_开摆就摆的博客-CSDN博客
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战