用于一些特殊的类进行遍历访问所用,类似于一个指针。

以下使用vector[向量]进行举例:

如何建立一个迭代器:

list::iterator it;

常用操作,迭代器进行遍历:

for(it = l.begin(); it != l.end(); it++)

其中,l是一个list类型的变量,首先迭代器等于l的首地址然后自加到l的尾地址
PS:在大部分STL中, 尾地址是指向了一个空的元素,所以用!=

对迭代器进行访问:

print("%d", *it);

这表示输出list的内容,迭代器类似于指针,要使用*进行取内容操作
PS:因为*的运算级别较低,所以在大部分时候要加上括号像(*it) –> first。

完整遍历输出代码

#include 
#include 
using namespce std;

int main() {
	list l;
	//省略读入代码
	list::iterator it;
	for(it = l.begin(); it != l.end(); it++)
		printf("%d\n", *it)
	return 0;
}

发表回复