یکی از pattern های معروف در design pattern در واقع iterator هستش که در واقع از طریق آنها شما قادرید انواع container ها را پیمایش کنید هم به صورت forward و هم به صورت revert تعریف میشن.در واقع iterator ها به صورت یک اشاره گر هستند که به محلی از container اشاره می کنند. برای تعریف یک iterator برای vector از نوع به صورت زیر عمل می کنیم.
using VecIt = vector<int>::iterator
شما با استفاده از operator ++ و -- می تونید موقعیت iterator خود را به عناصر بعدی و قبلی در container حرکت بدید.
به طور مثال شما قصد دارید کل یک vector را پیمایش کنید و کلیه عناصر آن را نمایش بدید .شما باید از ابتدای وکتور تا انتها آن حرکت کنید و در هر مرحله محلی که iterator به آن اشاره می کنه را چاپ کنید.iterator را به ابتدای لیست انتقال بدید و سپس هر بار آن را افزایش بدید تا به خانه ها بعدی اشاره کنه و در هر مرحله آن را با موقعیت خانه ی آخر مقایسه کنید.
vector<int> vec = {1,2,3,4,5};
for (vector<int>::iterator it = vec.begin();it != vec.end();it++)
cout << *it << endl;