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