다음을 통해 공유


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

요소가 하나만 있는 뷰입니다. 이 보기는 하나 이상의 요소가 있는 뷰와 함께 제공해야 하는 코드를 호출하는 테스트 용도로 유용합니다.

구문

template<std::copy_constructible T>
  requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>

템플릿 매개 변수

T
요소의 형식입니다.

특성 보기

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

특성 설명
범위 어댑터 views::single
기본 범위 None
요소 형식 만들 때 single_view 지정됨
반복기 범주 보기 contiguous_range
크기 항상 1을 반환합니다.
반복 const가능
공통 범위
빌린 범위 아니요

멤버

멤버 함수 설명
생성자C++20 를 생성합니다 single_view.
beginC++20 요소에 대한 반복기를 가져옵니다.
dataC++20 요소에 대한 포인터를 가져옵니다.
endC++20 보기의 끝에 있는 sentinel을 가져옵니다.
sizeC++20 요소 수를 가져옵니다. 항상 1를 반환합니다.
에서 상속됨 view_interface 설명
backC++20 요소를 가져옵니다.
emptyC++20 뷰가 비어 있는지 테스트합니다(항상 반환 false됨).
frontC++20 요소를 가져옵니다.
operator[]C++20 지정된 위치에 요소를 가져옵니다(위치 0만 유효).
operator boolC++20 뷰가 비어 있지 않은지 테스트합니다(항상 반환 false됨).

설명

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

템플릿 값이 single_view 아닌 경우 이 값은 수정할 수 있습니다 const. 예: single_view<const float> sv{3.14} // this value can't be modified because it's const

요구 사항

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

네임스페이스: std::ranges

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

생성자

single_view의 인스턴스를 만듭니다.

1) single_view() = default;
2) constexpr explicit single_view(const T& t);
3) constexpr explicit single_view(T&& t);
4) template<class... Args>
        requires constructible_from<T, Args...>
    constexpr single_view(in_place_t, Args&&... args);

매개 변수

t
요소 값입니다.

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

설명

범위를 만드는 single_view 가장 좋은 방법은 범위 어댑터를 사용하는 views::single 것입니다.

1) 기본 생성되는 지정된 형식의 단일 요소를 사용하여 만듭니 single_view 다. 예를 들어 기본적으로 single_view<float> sv{} 생성되는 형식 float 의 단일 요소를 사용하여 만듭니다 single_view 0.0.
2) 지정된 인수에서 복사 초기화되는 지정된 형식의 단일 요소를 사용하여 만듭니 single_view 다. 예를 들어 single_view<myObjectType> sv{myObject} 인수에서 복사 초기화되는 형식 myObjectType 의 단일 요소를 사용하여 만듭니다single_view.
3) 인수에서 이동 초기화되는 지정된 형식의 단일 요소를 사용하여 만듭니 single_view 다.
4) 지정된 형식(std::forward<Args>(args)...)의 단일 요소를 사용하여 만듭니 single_view 다.

본보기 single_view

/// requires /std:c++20 or higher
#include <ranges>
#include <iostream>
#include <string>
#include <tuple>

int main()
{
    std::ranges::single_view<int> sv{7};
    std::cout << sv.front() << " " << *sv.data() << "\n"; // 7 7

    std::ranges::single_view<std::tuple<int, std::string>> sv2{{6502, "8-bit"}};
    std::cout << std::get<0>(sv2[0]) << " " << std::get<1>(sv2[0]) << "\n"; // 6502 8-bit
}
7 7
6502 8-bit

begin

뷰의 단일 요소에 대한 포인터를 가져옵니다.

constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;

매개 변수

없음.

반환 값

내의 단일 요소에 대한 포인터입니다 single_view.

data

의 단일 요소에 대한 포인터를 가져옵니다 single_view.

constexpr T* data() noexcept;
constexpr const T* data() const noexcept;

매개 변수

없음.

반환 값

의 요소에 대한 포인터입니다 single_view.

end

요소 뒤의 sentinel에 대한 포인터를 가져옵니다.

constexpr T* end() noexcept;
constexpr const T* end() const noexcept;

매개 변수

없음.

반환 값

요소 뒤에 있는 sentinel에 대한 포인터입니다.

size

보기의 요소 수를 가져옵니다. 항상 1를 반환합니다.

static constexpr size_t size() noexcept;

매개 변수

없음.

반환 값

1

참고 항목

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