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)

    1. 여러 뷰의 데카르트 곱을 생성하는 뷰. 각 조합 (첫 뷰 요소, 둘째 뷰 요소, ...)을 튜플로 순회해요. 첫 뷰가 0개 요소면 결과도 비어요.
    1. cartesian_product 뷰를 생성하는 뷰 팩토리 객체.

멤버 함수 (Member functions)

  • (constructor) — cartesian_product 뷰 생성
  • begin / end — 반복자/센티널 반환 (중첩된 순회)
  • size — 모든 뷰 크기의 곱 반환 (모두 sized일 때)

참고 (Notes)

views::cartesian_product(v1, v2, ...)로 생성해요. 다차원 순회, 조합 생성 등에 유용해요. 중첩 루프와 같은 순회를 지연 생성해요.

더 알아보기 (Learn more)

cppreference