迭代器Iterator

1、引入

1.1、指针与数组:用指针遍历数组

#include 
#include 
#include 
#include 
using namespace std;

void main()
{
	const int arrsize = 10;
	int a[arrsize]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
	int *begin = a;
	int *end = a + arrsize;
	for (int *p = begin; p != end; p++)
	{
		cout << *p << endl;
	}
	system("pause");
}  
  • 但是在链表这种数据结构中,存储空间是非连续的。不能通过对指向这种数据结构的指针做累加来遍历
  • 能不能提供一个行为类似指针的类,来对非数组的数据结构进行遍历?这样我们就能够以同样的方式来遍历所有的数据结构[所有容器

2、迭代器与容器:用迭代器遍历容器

#include 
#include 
#include 
#include 
using namespace std;

void main()
{
	const int arrsize = 10;
	int a[arrsize]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
	vectorivec(a, a+arrsize);
	for (vector::iterator iter = ivec.begin(); iter != ivec.end(); iter++)
		cout << *iter << ends;
	/*
	每种容器都必须提供自己的迭代器
	容器提供一些函数以获得迭代器并以之遍历所有的元素
	*/
	system("pause");
}  
  • 通过迭代器,我们可以用相同的方式来访问,遍历[泛型编程]容器

2、迭代器的概念

  • 迭代器是一个“可遍历STL容器内全部或者部分元素“的对象
  • 一个迭代器指出容器中的一个特定位置
  • 具有遍历复杂数据结构的能力

3、迭代器的基本操作

迭代器Iterator_第1张图片

 

你可能感兴趣的:(#,C++)