1.C++迭代器
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec;
for(int i = 0; i < 10; i++)
vec.push_back(i);
for(std::vector<int>::iterator it = vec.begin(); it != vec.end(); it++) {
cout << "i = " << *it << endl;
}
return 0;
}
C++的迭代器如同指针一样,从容器(vector举例)开头,一直指向容器最后一位的后一位置。
2.JAVA迭代器
package com.forrest.forEachRemaining;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Test_FRR {
public static void main(String[] args) {
Collection<Integer> col = new ArrayList<>();
for(Integer i = 0; i < 10; i++)
col.add(i);
Iterator<Integer> iter = col.iterator();
//iter.forEachRemaining(ele -> System.out.println("i = " + ele));
while(iter.hasNext()) {
System.out.println("i = " + iter.next());
}
}
}
JAVA的迭代器则指在容器的空隙间,如下图所示。
如果找不到下一个元素(无元素可越),next就会抛出异常,因此,先通过hasNext判断有无下一个元素。