iterator ها برای پیمایش در عنصرهای داخل کلاس های نگهدارنده استفاده میشه .
مانند array و vector و list و ... و کلاس های شبیه به اینها یا همون Container ها .
یعنی iterator رو میشه یه اشاره گر به عنصر یا شی داخل Container دونست .
طوری که میشه با عملگر ++ به شی بعدی و -- به شی قبلی اشاره کرد .
یا با عملگر * (Dereference ) میشه به شیی که بهش اشاره میکنه دسترسی پیدا کرد .
مثلا در لیست-پیوندی اگر شما اشاره گر به شی اول رو داشته باشید نمیتونید با عملگر ++ به شی بعدی برید یا با عملگر * (Dereference) به شی دسترسی داشته باشید . ولی با iterator همچین کارهایی رو میشه به راحتی انجام داد .
یه نمونه کوچیک :
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec;
vec.push_back (1);
vec.push_back (2);
vec.push_back (3);
vec.push_back (4);
for (vector<int>::iterator cur = vec.begin(); cur != vec.end(); ++cur)
{
int data = *cur;
cout << data << endl;
}
return 0;
}
برای :std:list هم مثل همون قبلی :
#include <iostream>
#include <vector>
#include <list>
using namespace std;
int main()
{
list<int> numbers;
numbers.push_back(5);
numbers.push_back(4);
numbers.push_back(3);
numbers.push_back(2);
numbers.push_back(1);
numbers.push_back(0);
numbers.push_front(4);
numbers.push_front(3);
numbers.push_front(2);
numbers.push_front(1);
numbers.push_front(0);
for(list<int>::iterator i = numbers.begin();i != numbers.end();i++)
cout<<*i<<endl;
return 0;
}
یا میشه برای راحتتر شدن کار از auto هم استفاده کرد :
for(auto i = numbers.begin();i != numbers.end();i++)
cout<<*i<<endl;