다음을 통해 공유


reverse_view 클래스(C++ 표준 라이브러리)

범위 요소의 역순 보기입니다.

구문

template<ranges::view V>
requires ranges::bidirectional_range<V>
class reverse_view : public ranges::view_interface<reverse_view<V>>;

템플릿 매개 변수

V
기본 뷰의 형식입니다.
이 형식은 충족 ranges::bidirectional_range해야 합니다.

특성 보기

다음 항목에 대한 설명은 클래스 특성 보기를 참조 하세요.

특성 설명
범위 어댑터 views::reverse
기본 범위 다음까지 만족 bidirectional_range 해야 합니다. random_access_range
요소 형식 기본 범위와 동일
반복기 범주 보기 기본 범위와 동일
크기 기본 범위가 충족되는 경우에만 sized_range
반복 const가능 기본 범위가 a common_view 이고 충족되는 경우에만 const-iterable
공통 범위
빌린 범위 기본 범위가 충족되는 경우에만 borrowed_range

멤버

멤버 함수 설명
생성자C++20 를 생성합니다 reverse_view.
baseC++20 기본 범위를 가져옵니다.
beginC++20 첫 번째 요소에 대한 반복기를 가져옵니다.
endC++20 의 끝에 있는 sentinel을 가져옵니다 reverse_view.
sizeC++20 요소 수를 가져옵니다.
에서 상속됨 view_interface 설명
backC++20 마지막 요소를 가져옵니다.
emptyC++20 비어 있는지 테스트 reverse_view 합니다.
frontC++20 첫 번째 요소를 가져옵니다.
operator[]C++20 지정된 위치에 있는 요소를 가져옵니다.
operator boolC++20 비어 있지 않은지 테스트 reverse_view 합니다.

요구 사항

헤더: <ranges> (C++20 이후)

네임스페이스: std::ranges

컴파일러 옵션: /std:c++20 이상이 필요합니다.

생성자

양방향 뷰에서 인스턴스 reverse_view 를 생성합니다.

1) reverse_view() requires default_initializable<V> = default; // default-constructs the underlying view
2) constexpr explicit reverse_view(V rg); // initializes the underlying view via std::move(r)

매개 변수

rg
역방향 보기를 제공할 뷰입니다.

템플릿 매개 변수 형식에 대한 자세한 내용은 템플릿 매개 변수를 참조 하세요.

반환 값

기본 범위의 뷰(역순)입니다.

설명

범위를 만드는 reverse_view 가장 좋은 방법은 범위 어댑터를 사용하는 views::reverse 것입니다. 범위 어댑터는 뷰 클래스를 만드는 데 사용되는 방법입니다. 사용자 고유의 사용자 지정 보기 형식을 만들려는 경우 보기 형식이 노출됩니다.

1) 기본 생성자는 기본값을 초기화합니다 reverse_view.
2) 지정된 뷰에서 만듭니 reverse_view 다.

예: reverse_view

// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <vector>

int main()
{
    std::vector<int> v{0, 1, 2, 3, -4, 5, 6};
    auto rv = v | std::views::reverse;
    
    for (auto e : rv) // 6 5 -4 3 2 1 0
    {
        std::cout << e << ' ';
    }
}
6 5 -4 3 2 1 0

base

기본 뷰의 복사본을 가져옵니다.

// Uses a copy constructor to return the underlying view
constexpr V base() const& requires std::copy_constructible<V>;

// Uses a move constructor to return the underlying view
constexpr V base() &&;

매개 변수

없음.

반환 값

기본 보기입니다.

begin

에서 첫 번째 요소에 대한 반복기를 가져옵니다 reverse_view.

1) constexpr reverse_iterator<iterator_t<V>> begin();
2) constexpr reverse_iterator<iterator_t<V>> begin() requires common_range<V>;
3) constexpr auto begin() const requires common_range<const V>;

매개 변수

없음.

반환 값

의 첫 번째 요소를 reverse_view가리키는 반복기입니다.

요소가 10, 20 및 30인 벡터 그림입니다. 첫 번째 요소는 10을 포함하며 begin()이라는 레이블이 지정됩니다. 마지막 요소는 30을 포함하며 '마지막 요소'라는 레이블이 지정됩니다. 마지막 요소 뒤의 허수 상자는 sentinel을 나타내며 end()라는 레이블이 지정됩니다.

설명

첫 번째 호출 begin()후 후속 호출은 상수 시간(O(1) reverse_view으로 실행됩니다. 이 값은 값을 last 캐시하여 에서 반복적으로 begin반환할 수 있기 때문에 reverse_view 의미가 있습니다. 즉, 기본 컨테이너를 수정한 후에는 뷰를 다시 사용하면 안 됩니다. 기본 범위를 수정하는 경우 저렴한 새 뷰를 생성합니다.

2) 기본 뷰는 만족 common_range해야 합니다. 즉, 기본 뷰의 시작 및 끝 반복기 형식이 같아야 합니다.
3) 기본 뷰는 const 뷰가 반복되도록 const reverse_view만족 common_range 해야 합니다.

end

의 끝에 있는 sentinel을 가져옵니다. reverse_view

1) constexpr reverse_iterator<iterator_t<V>> end();
2) constexpr auto end() const requires common_range<const V>;

매개 변수

없음.

반환 값

의 마지막 요소 다음에 있는 sentinel입니다 reverse_view.

요소가 10, 20 및 30인 벡터 그림입니다. 첫 번째 요소는 10을 포함하며 begin()이라는 레이블이 지정됩니다. 마지막 요소는 30을 포함하며 '마지막 요소'라는 레이블이 지정됩니다. 마지막 요소 뒤의 허수 상자는 sentinel을 나타내며 end()라는 레이블이 지정됩니다.

설명

2의 경우 기본 뷰는 const 뷰에 대해 만족 common_range 해야 합니다. 즉, 기본 뷰의 시작 및 끝 반복기 형식이 같아야 합니다.

size

요소 수를 가져옵니다.

constexpr auto size() requires ranges::sized_range<V>;
constexpr auto size() const requires ranges::sized_range<const V>;

매개 변수

없음.

반환 값

reverse_view의 요소 수입니다.

설명

보기의 크기는 기본 범위 sized_range가 경계인 경우에만 사용할 수 있습니다.

참고 항목

<ranges>
reverse 범위 어댑터
클래스 보기