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)
-
- 기본 뷰 V의 각 요소에 함수 F를 적용해 변형된 요소를 생성하는 뷰. 요소들은 지연(lazily) 평가돼요.
-
- transform 뷰를 생성하는 뷰 팩토리 객체.
멤버 함수 (Member functions)
- (constructor) — transform 뷰 생성
- base — 기본 뷰 반환
- begin / end — 변형된 반복자/센티널 반환
- size — 크기 반환 (기본 뷰가 sized일 때)
참고 (Notes)
views::transform(range, f)로 생성해요. 범위의 각 요소에 f를 적용한 결과를 순회할 수 있어요. std::transform (즉시 적용)과 달리 지연 평가예요.