Namespaces
Variants

operator+,-(ranges::cartesian_product_view::iterator)

cppreference.net에서
 
 
범위 라이브러리
범위 어댑터
 
 
friend constexpr /*iterator*/ operator+( const /*iterator*/& i,
                                         difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(C++23부터) (2)
friend constexpr /*iterator*/ operator+( difference_type n,
                                         const /*iterator*/& i )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(C++23부터) (3)
friend constexpr /*iterator*/ operator-( const /*iterator*/& i,
                                         difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(C++23부터) (4)
friend constexpr difference_type operator-( const /*iterator*/& i,
                                            const /*iterator*/& j )
    requires
        /*cartesian-is-sized-sentinel*/<Const, iterator_t, First, Vs...>;
(C++23부터) (5)
friend constexpr difference_type operator-( const /*iterator*/& i,
                                            std::default_sentinel_t )
    requires
        /*cartesian-is-sized-sentinel*/<Const, ranges::sentinel_t, First, Vs...>;
(C++23부터) (6)
friend constexpr difference_type operator-( std::default_sentinel_t s,
                                            const /*iterator*/& i )
    requires
        /*cartesian-is-sized-sentinel*/<Const, ranges::sentinel_t, First, Vs...>;
(C++23부터)

반복자 산술을 수행하거나 거리를 계산합니다.

current_가 밑에 있는 반복자들의 튜플을 나타내고, parent_이가 cartesian_product_view에 대한 밑에 있는 포인터를 나타낸다고 하자.

1) 다음과 동등함: return /*iterator*/(i) += n;.
2) 다음과 동등함: return i + n;.
3) 다음과 동등함: return /*iterator*/(i) -= n;.
4) 다음과 동등함: return i.distance_from(j.current_);.
5) /*end-tuple*/는 std::tuple의 특수화인 형식의 객체라고 하자. 이때:
  • std::get<0>(/*end-tuple*/)는 ranges::end(std::get<0>(i.parent_->bases_));
  • std::get<N>(/*end-tuple*/)와 같은 값을 가지며, ranges::begin(std::get<N>(i.parent_->bases_))는 모든 정수 1 ≤ N ≤ sizeof...(Vs)에 대해 같은 값을 가진다.
다음과 동등함: return i.distance_from(/*end-tuple*/);.
6) 다음과 동등함: return -(i - s);.

이 함수들은 일반적인 비한정 또는 한정 조회로는 보이지 않으며, 인수 종속 조회에 의해서만 찾을 수 있습니다. cartesian_product_view::iterator<Const>가 인수의 연관된 클래스일 때

매개변수

i, j - 반복자
n - 현재 위치 기준 상대 위치
s - 센티넬

반환값

1,2) 증가된 반복자.
3) 감소된(decremented) 반복자(iterator).
4) 주어진 반복자 사이의 거리.
5,6) 주어진 반복자와 센티널 간의 거리.

예제

참고 항목

기본 반복자를 진행 또는 감소시킴
(public member function)