Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Başka bir aralığa ait öğelere başvuran bir görünüm.
Sözdizimi
template<std::ranges::range R>
requires std::is_object_v<R>
class ref_view : public ranges::view_interface<ref_view<R>>;
Şablon parametreleri
R
Başvurulacak aralık.
Üyeler
| Üye işlevleri | Açıklama |
|---|---|
| OluşturucularC++20 | oluşturma ref_view. |
baseC++20 |
Temel alınan aralığa bir başvuru alın. |
beginC++20 |
İlk öğeye bir yineleyici alın. |
dataC++20 |
Başvuruda bulunan aralıktaki ilk öğeye bir işaretçi alın. |
emptyC++20 |
Bunun ref_view boş olup olmadığını test edin. |
endC++20 |
Bu ref_viewöğesinin sonunda sentinel'i alın. |
sizeC++20 |
Öğe sayısını alın. Temel alınan aralığın karşılaması sized_rangegerekir. |
Devralınan view_interface |
Açıklama |
backC++20 |
Son öğeyi alın. |
frontC++20 |
İlk öğeyi alın. |
operator[]C++20 |
Öğesini belirtilen konumda alın. |
operator boolC++20 |
Bunun ref_view boş olup olmadığını test edin. |
Özellikleri görüntüleme
Aşağıdaki girdilerin açıklaması için bkz . Sınıf özelliklerini görüntüleme
| Characteristic | Açıklama |
|---|---|
| Aralık bağdaştırıcısı | views::all veya views::common |
| Temel alınan aralık | Karşılamalıdır input_range |
| Öğe türü | Temel alınan aralıkla aynı |
| Yineleyici kategoriyi görüntüleme | Temel alınan aralıkla aynı |
| Boyutlu | Yalnızca temel alınan aralık karşılanırsa sized_range |
- constyinelenebilir |
Yes |
| Ortak aralık | Yalnızca temel alınan aralık karşılanırsa common_range |
| Ödünç alınan aralık | Yes |
Gereksinimler
Üst bilgi: <ranges> (C++20'den beri)
Ad alanı: std::ranges
Derleyici Seçeneği: /std:c++20 veya üzeri gereklidir.
Oluşturucular
Bir örneğini oluşturma ref_view
// construct a ref_view from a range
template<different-from<ref_view> R>
constexpr ref_view(R&& rg);
Parametreler
rg
Başvurulacak aralık.
Şablon parametre türü hakkında bilgi için bkz . Şablon parametreleri.
Dönüş değeri
Bir ref_view örnek.
Açıklamalar
Oluşturmanın ref_view en iyi yolu, aralık bağdaştırıcısını views::all kullanmaktır. Aralık bağdaştırıcıları, görünüm sınıfları oluşturmanın amaçlanan yoludur. Kendi özel görünüm türünüzü oluşturmak istemeniz durumunda görünüm türleri kullanıma sunulur.
bir ref_view kapsayıcıyı görünüme dönüştürmek için yararlıdır. Örneğin, bir vector görünümünü görünüme dönüştürmek için kullanabilirsinizref_view; bu da vektörün öğelerinin çevresine geçirilmesini ucuz hale getirir.
Örnek: 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
Temel alınan aralığın bir kopyasını alır.
constexpr R& base() const;
Parametreler
Hiçbiri.
Dönüş değeri
Temel alınan aralık.
begin
içindeki ilk öğeye ref_viewbir yineleyici alın.
constexpr iterator_t<R> begin() const;
Parametreler
Hiçbiri.
Dönüş değeri
Bu ref_viewiçindeki ilk öğeye işaret eden bir yineleyici.
data
Bu ref_viewiçindeki ilk öğeye bir işaretçi alın. Aralıktaki öğeler bitişik olmalıdır.
constexpr auto data() const requires contiguous_range<R>;
Parametreler
Hiçbiri.
Dönüş değeri
İlk öğeye ilişkin bir işaretçi.
empty
Bunun ref_view boş olup olmadığını test edin.
constexpr bool empty() const
Parametreler
Hiçbiri.
Dönüş değeri
öğesinde öğe yoksa ref_view döndürürtrue. Tersi durumda false.
end
Bu ref_viewöğesinin sonunda sentinel'i alın.
constexpr sentinel_t<R> end() const
Dönüş değeri
Bu ref_viewiçindeki son öğeyi izleyen sentinel:
size
Öğe sayısını alın.
constexpr auto size() const requires sized_range<R>
Parametreler
Hiçbiri.
Dönüş değeri
içindeki ref_viewöğe sayısı.