It seems like a huge topic, so just divide it into small pieces and conquer them piece by piece, I have drawn a map for this article to guide me finish it instead of being scared by it.ios
Concept of iterator is here in #Wikipedia: Iterator , so I think iterator is just like pointer in C or cursor in database.ide
Iterator is just an abstract concept and can be implemented in many different ways. But first of all, we should figure out why we need iterator and why it is important for us.oop
First, just think about a simple for
loop in C++:ui
#include <iostream> using namespace std; int main() { for (int i = 0; i < 3; i++) cout << i << " "; cout << endl; system("pause"); return 0; }
#include <iostream> using namespace std; int main() { int a[] = { 1, 2, 3 }; for (int i = 0; i < 3; i++) cout << a[i] << " "; cout << endl; system("pause"); return 0; }
#include <iostream> using namespace std; int main() { int a[] = { 1, 2, 3 }; for (int i = 0; i < 3; i++) cout << *(a+i) << " "; cout << endl; system("pause"); return 0; }
#include <iostream> #include <vector> using namespace std; int main() { vector<int> a; a.push_back(1); a.push_back(2); a.push_back(3); for (vector<int>::iterator i = a.begin(); i != a.end(); i++) cout << *i << " "; cout << endl; system("pause"); return 0; }
#include <iostream> #include <vector> using namespace std; int main() { vector<int> a; a.push_back(1); a.push_back(2); a.push_back(3); for (auto i : a) cout << i << " "; cout << endl; system("pause"); return 0; }
In C++, if we implement a container of our own, and we want to use for loop or while loop to traverse it like basic data type, we can use iterator by implementthis
So first let's analysis this example inspa