ranges_zip_transform_view

ranges_zip_transform_view (지프 변형 뷰)

std::ranges::zip_transform_view은 여러 뷰를 평행하게 순회하며 각 위치에서 함수를 적용해 변형된 값을 생성하는 뷰예요. C++23부터 사용할 수 있어요.

출처: cppreference

본문

<ranges> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.

template< std::move_constructible F, ranges::input_range... Views >
    requires (ranges::view<Views> && ...) && (sizeof...(Views) > 0) &&
              std::is_object_v<F> && std::regular_invocable<
                  F&, ranges::range_reference_t<Views>...> &&
              /*can-reference*/<std::invoke_result_t<
                  F&, ranges::range_reference_t<Views>...>>
class zip_transform_view
    : public ranges::view_interface<zip_transform_view<F, Views...>>

(since C++23)

    1. 여러 뷰를 평행하게 순회하며 각 위치에서 i번째 요소들에 함수 F를 적용해 변형된 값을 생성하는 뷰. 최단 길이까지 순회해요.

멤버 함수 (Member functions)

  • (constructor) — zip_transform 뷰 생성
  • begin / end — 반복자/센티널 반환
  • size — 최단 뷰의 크기 반환 (모두 sized일 때)

참고 (Notes)

views::zip_transform(f, v1, v2, ...)로 생성해요. zip으로 묶은 튜플에 f를 적용하는 것과 같아요. 여러 범위를 평행 순회하며 결합 변환할 때 유용해요.

더 알아보기 (Learn more)

cppreference