ranges_cartesian_product_view
ranges_cartesian_product_view (데카르트 곱 뷰)
std::ranges::cartesian_product_view은 여러 뷰의 데카르트 곱을 생성하는 뷰예요. 기본 뷰들이 생성하는 모든 조합의 튜플을 순회해요. C++23부터 사용할 수 있어요.
출처: cppreference
본문
<ranges> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.
template< ranges::input_range First, ranges::forward_range... Vs >
requires (ranges::view<First> && ... && ranges::view<Vs>)
class cartesian_product_view
: public ranges::view_interface<cartesian_product_view<First, Vs...>>
(1) (since C++23)
namespace views {
inline constexpr /*unspecified*/ cartesian_product = /*unspecified*/;
}
(2)
-
- 여러 뷰의 데카르트 곱을 생성하는 뷰. 각 조합 (첫 뷰 요소, 둘째 뷰 요소, ...)을 튜플로 순회해요. 첫 뷰가 0개 요소면 결과도 비어요.
-
- cartesian_product 뷰를 생성하는 뷰 팩토리 객체.
멤버 함수 (Member functions)
- (constructor) — cartesian_product 뷰 생성
- begin / end — 반복자/센티널 반환 (중첩된 순회)
- size — 모든 뷰 크기의 곱 반환 (모두 sized일 때)
참고 (Notes)
views::cartesian_product(v1, v2, ...)로 생성해요. 다차원 순회, 조합 생성 등에 유용해요. 중첩 루프와 같은 순회를 지연 생성해요.