common_view
클래스(C++ 표준 라이브러리)
반복기와 sentinel 형식이 다를 수 있는 범위를 가져와서 반복기와 sentinel 형식이 동일한 뷰를 만듭니다. 반복기 쌍으로 지정된 범위를 허용하는 STL 알고리즘을 호출하는 데 유용합니다.
구문
template<ranges::view V>
requires (!ranges::common_range<V> && std::copyable<ranges::iterator_t<V>>)
class common_view : public ranges::view_interface<common_view<V>>;
템플릿 매개 변수
V
기본 뷰의 형식입니다.
특성 보기
다음 항목에 대한 설명은 클래스 특성 보기를 참조 하세요.
특성 | 설명 |
---|---|
범위 어댑터 | views::common |
기본 범위 | 만족 forward_range 하거나 그 이상이어야 합니다. |
요소 형식 | 기본 범위와 동일 |
반복기 범주 보기 | forward_range 또는 random_access_range 기본 범위가 충족되는 경우 random_access_range 및 sized_range |
크기 | 기본 범위가 충족되는 경우에만 sized_range |
반복 const 가능 |
기본 범위를 const 반복할 수 있는 경우에만 |
공통 범위 | 예 |
빌린 범위 | 기본 범위가 충족되는 경우에만 borrowed_range |
멤버
멤버 함수 | 설명 |
---|---|
생성자C++20 | 를 생성합니다 common_view . |
base C++20 |
기본 보기를 가져옵니다. |
begin C++20 |
뷰의 첫 번째 요소에 대한 반복기를 가져옵니다. |
end C++20 |
보기의 끝에 있는 sentinel을 가져옵니다. |
size C++20 |
보기의 요소 수를 가져옵니다. |
에서 상속됨 view_interface |
설명 |
back C++20 |
마지막 요소를 가져옵니다. |
data C++20 |
첫 번째 요소에 대한 포인터를 가져옵니다. |
empty C++20 |
보기가 비어 있는지 테스트합니다. |
front C++20 |
첫 번째 요소를 가져옵니다. |
operator[] C++20 |
지정된 위치에 있는 요소를 가져옵니다. |
operator bool C++20 |
보기가 비어 있지 않은지 테스트합니다. |
설명
범위를 만드는 common_view
가장 좋은 방법은 범위 어댑터를 사용하는 views::common
것입니다. 범위 어댑터는 뷰 클래스를 만드는 데 사용되는 방법입니다. 사용자 고유의 사용자 지정 보기 형식을 만들려는 경우 보기 형식이 노출됩니다.
이 보기는 반복기/sentinel 형식이 서로 다른 범위를 동일한 것으로 예상되는 레거시 알고리즘에 전달하는 데 유용합니다.
요구 사항
헤더: <ranges>
(C++20 이후)
네임스페이스: std::ranges
컴파일러 옵션: /std:c++20
이상이 필요합니다.
생성자
common_view
의 인스턴스를 만듭니다.
1) common_view() = default;
2) constexpr explicit common_view(V v);
매개 변수
v
기본 보기입니다.
템플릿 매개 변수 형식에 대한 자세한 내용은 템플릿 매개 변수를 참조 하세요.
설명
1) 기본값은 .common_view
2) 를 사용하여 std::move(v)
기본 뷰에서 생성합니다common_view
. 오용을 방지하기 위해 성능에 부정적인 영향을 주는 공통 범위인 경우 V
오류가 발생합니다.
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
첫 번째 요소에 대한 반복기를 가져옵니다.
constexpr auto begin();
constexpr auto begin() const requires range<const V>;
반환 값
뷰의 첫 번째 요소를 가리키는 반복기:
end
보기의 끝에 있는 sentinel을 가져옵니다.
constexpr auto end();
constexpr auto end() const requires ranges::range<const V>;
반환 값
뷰의 마지막 요소를 따르는 sentinel입니다.
size
보기의 요소 수를 가져옵니다.
constexpr auto size() requires ranges::sized_range<V>;
constexpr auto size() const requires ranges::sized_range<const V>;
매개 변수
없음.
반환 값
보기의 요소 수입니다.