Bucla foreach (range-based for)

Introdus în C++11, bucla range-based for (foreach) parcurge automat toate elementele unui container — mai simplu decât un for clasic cu index.

foreach.cpp
#include <iostream>
#include <vector>
using namespace std;

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

  for (int x : v) {
    cout << x << " ";
  }
  // 10 20 30 40 50

  // Cu referință (modificare în loc):
  for (int& x : v) {
    x *= 2;
  }
  return 0;
}

Parcurgerea unui string

string s = "Informatica";
int vocale = 0;
for (char c : s) {
  if (c=='a'||c=='e'||c=='i'||c=='o'||c=='u'||
      c=='A'||c=='E'||c=='I'||c=='O'||c=='U')
    vocale++;
}
cout << "Vocale: " << vocale << endl;
Folosește const auto& pentru containere de obiecte mari — evită copierea: for (const auto& elem : container).