C++ for_each()
first 부터 last 까지 범위 내에 원소들에 대해 함수를 실행 시킵니다. fore_each()는 <algorithm>헤더에 정의 되어 있습니다.
예제
#include <vector>
#include <algorithm>
#include <iostream>
struct Sum
{
void operator () (int n) { sum += n; }
int sum{ 0 };
};
int main()
{
std::vector<int> nums{3,4,8,15,267};
auto print = [](const int& n) {std::cout << " " << n; };
std::cout << "before:";
std::for_each(nums.cbegin(), nums.cend(), print);
std::cout << '\n';
std::for_each(nums.begin(), nums.end(), [](int& n) {n++;});
// calls Sum:operator() for each number
Sum s = std::for_each(nums.begin(), nums.end(), Sum());
std::cout << "after:";
std::for_each(nums.begin(), nums.end(), print);
std::cout << '\n';
std::cout << "sum:" << s.sum << '\n';
}
결과
참고
https://en.cppreference.com/w/cpp/algorithm/for_each