Iteratori

Un iterator este un pointer generalizat care permite parcurgerea unui container fără a cunoaște implementarea sa internă.

vector<int> v = {10, 20, 30, 40, 50};

// Iterator explicit
vector<int>::iterator it;
for (it = v.begin(); it != v.end(); ++it) {
  cout << *it << " ";
}

// Cu auto (recomandat)
for (auto it = v.begin(); it != v.end(); ++it) {
  cout << *it << " ";
}

Iteratori speciali

// Iterare inversă
for (auto it = v.rbegin(); it != v.rend(); ++it)
  cout << *it << " ";
// 50 40 30 20 10

// Iteratori în algoritmi
auto minIt = min_element(v.begin(), v.end());
cout << *minIt << endl;  // 10

auto pos = find(v.begin(), v.end(), 30);
if (pos != v.end()) cout << "Gasit!" << endl;