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)

    1. 기본 뷰 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로 결합 변환해요. 슬라이딩 윈도우 변환에 유용해요.

더 알아보기 (Learn more)

cppreference