Ugrás a tartalomhoz

std::for each

A Wikiszótárból, a nyitott szótárból


Főnév

std::for each (tsz. std::for eaches)

  1. (informatika) A std::for_each egy algoritmus a C++ STL-ben, amely lehetővé teszi, hogy egy adott függvényt vagy műveletet végrehajts minden elemre egy tartományban (például egy vector vagy list elemein).

Szintaxisa:

std::for_each(begin_iterátor, end_iterátor, függvény_vagy_lambda);
  • begin_iterátor: a tartomány kezdete
  • end_iterátor: a tartomány vége (egy elem utáni iterátor)
  • függvény_vagy_lambda: a függvény, amelyet minden elemre meghívunk

Mire jó?

✅ Kód egyszerűsítése — nem kell for ciklust írni ✅ Minden elemre ugyanazt a műveletet alkalmazhatod ✅ Könnyű lambda függvényekkel kombinálni

Példa:

#include <iostream>
#include <vector>
#include <algorithm>  // for std::for_each

void print(int n) {
    std::cout << n << " ";
}

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};

    std::for_each(numbers.begin(), numbers.end(), print);

    return 0;
}

Kimenet:

1 2 3 4 5 

Lambda kifejezéssel (gyakori modern használat):

std::for_each(numbers.begin(), numbers.end(), [](int n) {
    std::cout << n * 2 << " ";
});

Kimenet:

2 4 6 8 10 

Összefoglalva:

  • A std::for_each egy gyűjtő-funkció, ami lehetővé teszi, hogy egyedi műveletet alkalmazzunk minden elemre.
  • Alternatívája: modern C++-ban sokszor a range-based for ciklust (for (auto x : container)) használjuk helyette, de std::for_each továbbra is hasznos pl. lambda függvényekkel vagy összetettebb algoritmusokban.