다음을 통해 공유


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

다른 보기에서 첫 번째 N 요소의 보기입니다.

구문

template<view V>
class take_view : public view_interface<take_view<V>>;

템플릿 매개 변수

V
기본 범위의 형식입니다.

특성 보기

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

특성 설명
범위 어댑터 views::take
기본 범위 모든 범위
요소 형식 기본 범위와 동일
반복기 범주 보기 기본 범위와 동일
크기 아니요
반복 const가능 기본 범위를 const 반복할 수 있는 경우에만
공통 범위 기본 범위가 충족 random_access_range 되고 sized_range
빌린 범위 기본 범위가 인 경우에만 borrowed_range

멤버

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

요구 사항

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

네임스페이스: std::ranges

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

생성자

의 인스턴스 생성 take_view

1) take_view() requires default_initializable<V> = default;
2) constexpr take_view(V base, range_difference_t<V> count);

매개 변수

base
기본 보기입니다.

count
기본 보기의 맨 앞에서 가져올 요소 수입니다. 기본 보기의 요소 수보다 많은 경우 count 뷰에는 기본 범위의 모든 요소가 포함됩니다.

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

반환 값

A take_view- 다른 보기에서 첫 번째 N 요소의 뷰입니다. 기본 범위에 empty_view 있는 것보다 삭제할 요소를 더 많이 지정하면 반환됩니다.

설명

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

1) 요소가 없는 A를 만듭니 take_view 다. 기본 뷰는 기본 생성됩니다. base() 는 .의 복사본을 반환합니다 V().
2) a take_view base 및 개수를 만듭니다. base 는 .를 통해 std::move()이동됩니다.

기본 범위 count 의 요소 수보다 작은 경우 count 크기를 결정합니다take_view.
기본 범위의 요소 수보다 크면 count 기본 범위 take_view 의 모든 요소가 포함됩니다.

예: take_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 newView = std::views::take(v, 3);
    
    for (auto& e : newView)
    {
        std::cout << e << ' '; // 0 1 2
    }
    std::cout << '\n';

    // Use the '|' operator to create a take_view
    for (auto i : v | std::views::take(3))
    {
        std::cout << i << ' '; // 0 1 2
    }
}
0 1 2
0 1 2

base

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

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

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

매개 변수

없음.

반환 값

기본 보기입니다.

begin

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

constexpr auto begin() requires (!Simple_view<V>);
constexpr auto begin() const requires range<const V>;

매개 변수

없음.

반환 값

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

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

설명

1의 Simple_view<V> 경우 요구 사항은 뷰 V 를 의미하며 const V 동일한 반복기 및 sentinel 형식을 가져야 합니다.

end

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

1) constexpr auto end() requires !(Simple_view<V>);
2) constexpr auto end() const requires range<const V>;

매개 변수

없음.

반환 값

뷰의 마지막 요소 뒤에 있는 sentinel입니다.

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

설명

1의 Simple_view<V> 경우 요구 사항은 뷰 V 를 의미하며 const V 동일한 반복기 및 sentinel 형식을 가져야 합니다.

size

요소 수를 가져옵니다.

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

매개 변수

없음.

반환 값

take_view의 요소 수입니다.
take_view 명시적count을 사용하여 생성된 경우:

  • 기본 범위의 요소 수보다 작으면 count 보기의 크기로 반환됩니다.
  • 기본 범위의 요소 수보다 크면 count 뷰의 크기가 입니다 ranges::size(base).

참고 항목

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