C中的迭代器是指针吗?我问的原因是,似乎没有人完全理解迭代器是什么.这只是他们所说的“事物”或“价值”.但迭代器只是指向元素,它的位置.当我们取消引用它时,就像查看迭代器指向的内容一样.这是一个正确的比喻吗?请帮忙
解决方法
简短的回答是:
>指针是一种迭代器.
>因此可以将指针用作迭代器.
>指针具有迭代器以外的属性.
历史
从历史上看,我们有C指针,当C被发明时它被改编成C.指针表示内存中的位置,因此可以用作数组中的位置.
后来,在20世纪90年代,C引入了一个名为“迭代器概念”的概念. “迭代器概念”与名为STL的库(后来被吸收到标准库中)和称为“泛型编程”的范例相关.迭代器概念的灵感来自C指针,用于表示容器中的位置,如vector,deque等,就像C指针如何表示数组中的位置一样.迭代器概念经过精心设计,与C指针兼容,因此我们现在可以说C指针模型迭代器概念.
迭代器的概念
理解迭代器概念的简化方法是,如果数据类型支持操作和行为列表,使其表示容器中的位置,并启用对元素的某种访问,则可以将其称为迭代器.
通过仔细设计迭代器概念,C指针实现了该列表.因此,指针是一种迭代器.
迭代器概念只是对类型的一组要求,意味着您可以通过数据抽象的C函数创建自己的迭代器.
指针的其他属性
指针的重要用途是表达参考语义,即指代远程存储器位置中的对象.这种指针的使用后来被认为是不安全的,并导致“智能指针”的发明.通过比较智能指针和迭代器,我们可以发现它们是完全不相关的概念.
指针的另一个用途是引用原始内存位置.这对于应用程序编程来说完全不安全,但却是微控制器编程操作硬件的必备工具.