در C++، Iterator ابزاری است که به ما اجازه میدهد در عناصر ساختارهای دادهای STL مثل Vector، List، Set و Map حرکت کنیم و به عناصر دسترسی داشته باشیم.
Iterator مانند یک Pointer هوشمند عمل میکند و با توابع STL هماهنگی دارد.
🔹 1️⃣ ایجاد و استفاده از Iterator
#include <iostream>
#include <vector>
using namespace std;
int main() {
    vector<int> v = {10, 20, 30, 40};
    // تعریف Iterator
    vector<int>::iterator it;
    for(it = v.begin(); it != v.end(); ++it) {
        cout << *it << " "; // دسترسی به مقدار با *
    }
    return 0;
}
📌 خروجی:
10 20 30 40
()v.begin→ شروع ساختار
()v.end→ بعد از آخرین عنصر
🔹 2️⃣ Iterator در List
#include <iostream>
#include <list>
using namespace std;
int main() {
    list<int> l = {1, 2, 3, 4};
    for(list<int>::iterator it = l.begin(); it != l.end(); ++it) {
        cout << *it << " ";
    }
    return 0;
}
📌 خروجی:
1 2 3 4
🔹 3️⃣ Iterator در Set
#include <iostream>
#include <set>
using namespace std;
int main() {
    set<int> s = {5, 1, 3};
    for(set<int>::iterator it = s.begin(); it != s.end(); ++it) {
        cout << *it << " ";
    }
    return 0;
}
📌 خروجی (مرتب شده خودکار):
1 3 5
🔹 4️⃣ Iterator در Map
#include <iostream>
#include <map>
using namespace std;
int main() {
    map<string, int> m = {{"Alice", 25}, {"Bob", 30}};
    for(map<string,int>::iterator it = m.begin(); it != m.end(); ++it) {
        cout << it->first << ": " << it->second << endl;
    }
    return 0;
}
📌 خروجی:
Alice: 25
Bob: 30
در Map از
it->firstوit->secondبرای دسترسی به کلید و مقدار استفاده میکنیم.
🔹 5️⃣ Iterator معکوس (Reverse Iterator)
vector<int> v = {1, 2, 3, 4};
for(vector<int>::reverse_iterator rit = v.rbegin(); rit != v.rend(); ++rit) {
    cout << *rit << " ";  // چاپ معکوس عناصر
}
📌 خروجی:
4 3 2 1
🔹 6️⃣ نکات کلیدی
- 
Iterator مانند Pointer هوشمند است که میتواند به عناصر دسترسی پیدا کند. 
- 
انواع Iterator: - 
Forward Iterator → حرکت به جلو 
- 
Bidirectional Iterator → حرکت جلو و عقب (List, Set, Map) 
- 
Random Access Iterator → دسترسی تصادفی و حرکت سریع (Vector, Deque) 
 
- 
- 
استفاده از Iterator باعث هماهنگی با الگوریتمهای STL میشود. 
- 
Iterator برای پیمایش بدون وابستگی به نوع کانتینر بسیار کاربردی است. 
💡 خلاصه:
Iterator در C++ ابزار استاندارد برای پیمایش عناصر STL است. با استفاده از Iterator میتوان عناصر را بخوانیم، تغییر دهیم یا با الگوریتمهای STL پردازش کنیم، بدون اینکه به پیادهسازی داخلی ساختار دادهای وابسته باشیم.
 CSS3
          CSS3
        
                
           HTML
          HTML
        
                
           Tailwind Css
          Tailwind Css
        
                
           Bootstrap 5
          Bootstrap 5
        
                
           Java script
          Java script
        
                
           ++C
          ++C
        
                
           Python
          Python
        
                
           Three.js
          Three.js
        
                
           Gsap
          Gsap
        
                
           Sass
          Sass
        
                
           SQL
          SQL
        
                
           React
          React