ranges_transform_view

ranges_transform_view (변형 뷰)

std::ranges::transform_view은 기본 뷰의 각 요소에 함수를 적용해 변형된 요소를 생성하는 뷰예요. C++20부터 사용할 수 있어요.

출처: cppreference

본문

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

template< ranges::input_range V,
          std::copy_constructible F >
    requires ranges::view<V> &&
             std::is_object_v<F> &&
             std::regular_invocable<F&, ranges::range_reference_t<V>> &&
             /* invoke_result_t<F&, range_reference_t<V>>& is a valid type */
class transform_view
    : public ranges::view_interface<transform_view<V, F>>

(1) (since C++20)

namespace views {
    inline constexpr /* unspecified */ transform = /* unspecified */;
}

(2)

    1. 기본 뷰 V의 각 요소에 함수 F를 적용해 변형된 요소를 생성하는 뷰. 요소들은 지연(lazily) 평가돼요.
    1. transform 뷰를 생성하는 뷰 팩토리 객체.

멤버 함수 (Member functions)

  • (constructor) — transform 뷰 생성
  • base — 기본 뷰 반환
  • begin / end — 변형된 반복자/센티널 반환
  • size — 크기 반환 (기본 뷰가 sized일 때)

참고 (Notes)

views::transform(range, f)로 생성해요. 범위의 각 요소에 f를 적용한 결과를 순회할 수 있어요. std::transform (즉시 적용)과 달리 지연 평가예요.

더 알아보기 (Learn more)

cppreference