迭代器介绍
背景:指针可用于遍历存储空间连续数据结构,但如果存储成本是连续的,则需要查找行为类似指针的类以遍历非数组数据结构。
定义:迭代器是一种检查容器内元素并遍历元素的数据类型。
迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围
迭代器(迭代器)是指针(指针)的泛化,使程序员能够以相同的方式处理不同的数据结构(容器)。
(1)迭代器提供对对象的间接访问,类似于c语言指针类型。
)2)指针是c语言的知识点,迭代器是c的知识点。 指针灵活,迭代器功能丰富。
(3)迭代器提供针对容器对象或字符串对象的访问方法,并定义了容器范围。
迭代器和指针之间的差异:
容器和string具有迭代器类型同时具有返回迭代器的成员。 例如,容器具有成员begin和end,begin成员复制并返回指向第一个元素的迭代器,end成员返回容器尾元素的下一个位置的迭代器。 也就是说,end指的是不存在的元素,为所以end返回的是尾后迭代器。
使用容器迭代器
每个容器类型都定义了自己的迭代器类型。 定义一个名为如vector:vector int:: iterator iteriter的变量,数据类型为vector int定义的iterator 类型简单地说,容器类定义自己的迭代器类型,并用于访问容器中的元素。每个容器定义了一种名为iterator的类型,这种类型支持迭代器的各种行为
迭代器的类型如下:
如上图所示,迭代器类型主要支持两种类型:随机访问和双向访问。 其中,vector和deque支持随机访问,list、set、map等支持双向访问。
1 )随机访问)提供对数组元素的快速随机访问,以及在数组末尾的快速插入和删除操作。
2 )双向访问:插入和删除所需的时间是固定的,与位置无关。
使用迭代器
1、所有迭代器:
2、双向迭代器:
3、输入迭代器:
4、输出迭代器
5、随机迭代器
引用数据:
3358 blog.csdn.net/QQ _ 23100787/article/details/51388163
特别感谢~