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.
Farklı yineleyici ve sentinel türlerine sahip olabilecek bir aralık alın ve aynı yineleyici ve sentinel türüne sahip bir görünüm oluşturun. Bu, yineleyici çiftleri tarafından belirtilen aralıkları kabul eden STL algoritmalarını çağırmak için kullanışlıdır.
Sözdizimi
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>>;
Şablon parametreleri
V
Temel alınan görünümün türü.
Ö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::common |
| Temel alınan aralık | Veya üzerini karşılaması forward_range gerekir |
| Öğe türü | Temel alınan aralıkla aynı |
| Yineleyici kategoriyi görüntüleme | forward_rangeveya random_access_range temel alınan aralık ve random_access_rangesized_range |
| Boyutlu | Yalnızca temel alınan aralık karşılanırsa sized_range |
- constyinelenebilir |
Yalnızca temel alınan aralık const yinelenebilirse |
| Ortak aralık | Yes |
| Ödünç alınan aralık | Yalnızca temel alınan aralık karşılanırsa borrowed_range |
Üyeler
| Üye işlevleri | Açıklama |
|---|---|
| OluşturucularC++20 | oluşturma common_view. |
baseC++20 |
Temel alınan görünümü alın. |
beginC++20 |
Görünümdeki ilk öğeye bir yineleyici alın. |
endC++20 |
Görünümün sonunda sentinel'i alın. |
sizeC++20 |
Görünümdeki öğe sayısını alın. |
Devralınan view_interface |
Açıklama |
backC++20 |
Son öğeyi alın. |
dataC++20 |
İlk öğeye bir işaretçi alın. |
emptyC++20 |
Görünümün boş olup olmadığını test edin. |
frontC++20 |
İlk öğeyi alın. |
operator[]C++20 |
Öğesini belirtilen konumda alın. |
operator boolC++20 |
Görünümün boş olup olmadığını test edin. |
Açıklamalar
Oluşturmanın common_view en iyi yolu, aralık bağdaştırıcısını views::common 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.
Bu görünüm, farklı yineleyici/sentinel türlerine sahip bir aralığı aynı olmasını bekleyen eski bir algoritmaya geçirmek için kullanışlıdır.
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 common_view örneği oluşturun.
1) common_view() = default;
2) constexpr explicit common_view(V v);
Parametreler
v
Temel alınan görünüm.
Şablon parametre türü hakkında bilgi için bkz . Şablon parametreleri.
Açıklamalar
1) Varsayılan olarak öğesini common_viewoluşturur.
2) kullanarak std::move(v)temel görünümden bir common_view oluşturur. Performansı olumsuz etkileyecek kötüye kullanımı önlemek için yaygın bir aralıksa V bir hata oluşur.
base
Temel alınan görünümün bir kopyasını alır.
// 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
İlk öğeye bir yineleyici alın.
constexpr auto begin();
constexpr auto begin() const requires range<const V>;
Dönüş değeri
Görünümdeki ilk öğeye işaret eden bir yineleyici:
end
Görünümün sonunda sentinel'i alın.
constexpr auto end();
constexpr auto end() const requires ranges::range<const V>;
Dönüş değeri
Görünümdeki son öğeyi izleyen sentinel:
size
Görünümdeki öğe sayısını alın.
constexpr auto size() requires ranges::sized_range<V>;
constexpr auto size() const requires ranges::sized_range<const V>;
Parametreler
Hiçbiri.
Dönüş değeri
Görünümdeki öğe sayısı.