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 |
멤버
멤버 함수 | 설명 |
---|---|
생성자 | 뷰를 생성합니다. |
base C++20 |
기본 범위를 가져옵니다. |
begin C++20 |
첫 번째 요소에 대한 반복기를 가져옵니다. |
end C++20 |
보기의 끝에 있는 sentinel을 가져옵니다. |
size C++20 |
요소 수를 가져옵니다. 기본 범위는 충족 sized_range 해야 합니다. |
에서 상속됨 view_interface |
설명 |
back C++20 |
마지막 요소를 가져옵니다. |
data C++20 |
첫 번째 요소에 대한 포인터를 가져옵니다. |
empty C++20 |
보기가 비어 있는지 테스트합니다. |
front C++20 |
첫 번째 요소를 가져옵니다. |
operator[] C++20 |
지정된 위치에 있는 요소를 가져옵니다. |
operator bool C++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>;
매개 변수
없음.
반환 값
뷰의 첫 번째 요소를 가리키는 반복기입니다.
설명
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입니다.
설명
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)
.