ref_view
클래스(C++ 표준 라이브러리)
다른 범위에 속하는 요소를 참조하는 뷰입니다.
구문
template<std::ranges::range R>
requires std::is_object_v<R>
class ref_view : public ranges::view_interface<ref_view<R>>;
템플릿 매개 변수
R
참조할 범위입니다.
멤버
멤버 함수 | 설명 |
---|---|
생성자C++20 | 를 생성합니다 ref_view . |
base C++20 |
기본 범위에 대한 참조를 가져옵니다. |
begin C++20 |
첫 번째 요소에 대한 반복기를 가져옵니다. |
data C++20 |
참조된 범위의 첫 번째 요소에 대한 포인터를 가져옵니다. |
empty C++20 |
비어 ref_view 있는지 테스트합니다. |
end C++20 |
이 ref_view 끝부분에 있는 sentinel을 가져옵니다. |
size C++20 |
요소 수를 가져옵니다. 기본 범위는 충족 sized_range 해야 합니다. |
에서 상속됨 view_interface |
설명 |
back C++20 |
마지막 요소를 가져옵니다. |
front C++20 |
첫 번째 요소를 가져옵니다. |
operator[] C++20 |
지정된 위치에 있는 요소를 가져옵니다. |
operator bool C++20 |
비어 ref_view 있지 않은지 테스트합니다. |
특성 보기
다음 항목에 대한 설명은 클래스 특성 보기를 참조 하세요.
특성 | 설명 |
---|---|
범위 어댑터 | views::all 또는 views::common |
기본 범위 | 충족해야 합니다. input_range |
요소 형식 | 기본 범위와 동일 |
반복기 범주 보기 | 기본 범위와 동일 |
크기 | 기본 범위가 충족되는 경우에만 sized_range |
반복 const 가능 |
예 |
공통 범위 | 기본 범위가 충족되는 경우에만 common_range |
빌린 범위 | 예 |
요구 사항
헤더: <ranges>
(C++20 이후)
네임스페이스: std::ranges
컴파일러 옵션: /std:c++20
이상이 필요합니다.
생성자
의 인스턴스 생성 ref_view
// construct a ref_view from a range
template<different-from<ref_view> R>
constexpr ref_view(R&& rg);
매개 변수
rg
참조할 범위입니다.
템플릿 매개 변수 형식에 대한 자세한 내용은 템플릿 매개 변수를 참조 하세요.
반환 값
ref_view
인스턴스입니다.
설명
범위를 만드는 ref_view
가장 좋은 방법은 범위 어댑터를 사용하는 views::all
것입니다. 범위 어댑터는 뷰 클래스를 만드는 데 사용되는 방법입니다. 사용자 고유의 사용자 지정 보기 형식을 만들려는 경우 보기 형식이 노출됩니다.
A ref_view
는 컨테이너를 뷰로 변환하는 데 유용합니다. 예를 들어 뷰로 변환 vector
하는 데 사용할 ref_view
수 있으므로 벡터의 요소를 전달하는 것이 저렴합니다.
예: ref_view
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v = {1,2,3};
auto refView = std::views::all(v);
std::cout << &refView[1] << " : " << &v[1]; // outputs two identical memory addresses, e.g. 00000239AFAFDF90 : 00000239AFAFDF90
refView[0] = 10; // modifies v[0]
std::cout << "\n" << v[0]; // 10
}
00000239AFAFDF90 : 00000239AFAFDF90
10
base
기본 범위의 복사본을 가져옵니다.
constexpr R& base() const;
매개 변수
없음.
반환 값
기본 범위입니다.
begin
에서 첫 번째 요소에 대한 반복기를 가져옵니다 ref_view
.
constexpr iterator_t<R> begin() const;
매개 변수
없음.
반환 값
이 ref_view
요소의 첫 번째 요소를 가리키는 반복기입니다.
data
이 ref_view
항목의 첫 번째 요소에 대한 포인터를 가져옵니다. 범위의 요소는 연속적이어야 합니다.
constexpr auto data() const requires contiguous_range<R>;
매개 변수
없음.
반환 값
첫 번째 요소에 대한 포인터입니다.
empty
비어 ref_view
있는지 테스트합니다.
constexpr bool empty() const
매개 변수
없음.
반환 값
요소가 없는 경우 ref_view
반환 true
합니다. 그렇지 않으면 false
입니다.
end
이 ref_view
끝부분에 있는 sentinel을 가져옵니다.
constexpr sentinel_t<R> end() const
반환 값
다음의 마지막 요소 다음에 오는 sentinel입니다.ref_view
size
요소 수를 가져옵니다.
constexpr auto size() const requires sized_range<R>
매개 변수
없음.
반환 값
ref_view
의 요소 수입니다.