如何使用C++ 中的iterator?

来源:百度知道 编辑:UC知道 时间:2024/09/25 16:26:01
麻烦介绍一下iterator的作用和使用方法。谢谢。
容器的一般用法我基本了解,就是这iterator让人摸不着头脑。

template<class P,class T>
P find(P start,P beyond,const T& x)
{
while( start != beyond && * start != x)
++start;
return start;
}

template<class P, class T>
void reverse(P start, P beyond)
{
while(start != beyond) {
--beyond;
if (start != beyond) {
T t = *start;
*start = *beyond;
*beyond = t;
++ start;
}
}
}

把他当成一个指针来看就好了。
比如说
vector<int> v;
vector<int>::iterator iter;
// 其实里面的iterator 你可以这么理解typedef int* iterator;
// 是一个指向所属容器的指针
iter = v.begin()//指向v容器的第一个元素
可以对iter做增与减的操作
++iter;
--iter;