ranges::for_each
ranges::for_each (범위에 함수 적용)
범위의 각 요소에 호출 가능 객체를 적용하는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.
출처: cppreference
본문
std::ranges::for_each는 범위의 각 요소에 함수 객체 f를 적용해요.
namespace std::ranges {
template< std::input_iterator I, std::sentinel_for<I> S, class Proj = std::identity,
std::indirectly_unary_invocable<std::projected<I, Proj>> Fun >
constexpr for_each_result<I, Fun> for_each( I first, S last, Fun f, Proj proj = {} );
}
- 반환 타입
for_each_result{in, fun}에 마지막 반복자와 함수 객체를 담아요. proj로 요소를 투영해 함수에 넘길 수 있어요.
std::vector<int> v{1, 2, 3, 4};
std::ranges::for_each(v, [](int& x){ x *= 2; });
// v == {2,4,6,8}
요소에 부작용을 수행하는 반복문을 대체하는 ranges 버전이에요.