ranges_adjacent_transform_view
ranges_adjacent_transform_view (인접 변형 뷰)
std::ranges::adjacent_transform_view은 기본 뷰에서 N개의 연속 요소에 함수를 적용해 변형된 값을 생성하는 뷰예요. C++23부터 사용할 수 있어요.
출처: cppreference
본문
<ranges> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.
template< ranges::forward_range V, std::move_constructible F, std::size_t N >
requires ranges::view<V> && (N > 0) && std::is_object_v<F> &&
std::regular_invocable<F&,
/*REPEAT*/(ranges::range_reference_t<V>, N)...> &&
/*can-reference*/<std::invoke_result_t<F&,
/*REPEAT*/(ranges::range_reference_t<V>, N)...>>
class adjacent_transform_view
: public ranges::view_interface<adjacent_transform_view<V, F, N>>
(since C++23)
-
- 기본 뷰 V의 각 위치 i에 대해 [i, i+N) 구간의 N개 요소에 함수 F를 적용해 변형된 값을 생성하는 뷰.
멤버 함수 (Member functions)
- (constructor) — adjacent_transform 뷰 생성
- base — 기본 뷰 반환
- begin / end — 반복자/센티널 반환
- size — max(size(V)-N+1, 0) 반환 (sized일 때)
참고 (Notes)
views::adjacent_transform<N>(r, f)로 생성해요. 인접 N개를 f로 결합 변환해요. 슬라이딩 윈도우 변환에 유용해요.