다음을 통해 공유


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_viewbase 및 개수를 만듭니다. 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>;

매개 변수

없음.

반환 값

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

Picture of a vector with the elements 10, 20, and 30. The first element contains 10 and is labeled begin(). The last element contains 30 and is labeled 'last element'. An imaginary box after the last element indicates the sentinel and is labeled 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입니다.

Picture of a vector with the elements 10, 20, and 30. The first element contains 10 and is labeled begin(). The last element contains 30 and is labeled 'last element'. An imaginary box after the last element indicates the sentinel and is labeled 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 범위 어댑터
클래스 보기