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 . |
base C++20 |
기본 범위를 가져옵니다. |
begin C++20 |
첫 번째 요소에 대한 반복기를 가져옵니다. |
end C++20 |
의 끝에 있는 sentinel을 가져옵니다 reverse_view . |
size C++20 |
요소 수를 가져옵니다. |
에서 상속됨 view_interface |
설명 |
back C++20 |
마지막 요소를 가져옵니다. |
empty C++20 |
비어 있는지 테스트 reverse_view 합니다. |
front C++20 |
첫 번째 요소를 가져옵니다. |
operator[] C++20 |
지정된 위치에 있는 요소를 가져옵니다. |
operator bool C++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
가리키는 반복기입니다.
설명
첫 번째 호출 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
.
설명
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
가 경계인 경우에만 사용할 수 있습니다.