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.
Bir aralığın öğelerinin ters sırada görünümü.
Sözdizimi
template<ranges::view V>
requires ranges::bidirectional_range<V>
class reverse_view : public ranges::view_interface<reverse_view<V>>;
Şablon parametreleri
V
Temel alınan görünümün türü.
Bu tür karşılamalıdır ranges::bidirectional_range.
Ö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::reverse |
| Temel alınan aralık | bidirectional_range En fazlarandom_access_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 |
Yalnızca temel alınan aralık bir common_view ise ve const-iterable |
| 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 reverse_view. |
baseC++20 |
Temel alınan aralığı alın. |
beginC++20 |
İlk öğeye bir yineleyici alın. |
endC++20 |
sentinel'i öğesinin sonunda alın reverse_view. |
sizeC++20 |
Öğe sayısını alın. |
Devralınan view_interface |
Açıklama |
backC++20 |
Son öğeyi alın. |
emptyC++20 |
öğesinin reverse_view boş olup olmadığını test edin. |
frontC++20 |
İlk öğeyi alın. |
operator[]C++20 |
Öğesini belirtilen konumda alın. |
operator boolC++20 |
öğesinin reverse_view boş olup olmadığını test edin. |
Gereksinimler
Üst bilgi: <ranges> (C++20'den beri)
Ad alanı: std::ranges
Derleyici Seçeneği: /std:c++20 veya üzeri gereklidir.
Oluşturucular
Çift yönlü görünümden bir reverse_view örneğini oluşturun.
1) reverse_view() requires default_initializable<V> = default; // default-constructs the underlying view
2) constexpr explicit reverse_view(V rg); // initializes the underlying view via std::move(r)
Parametreler
rg
Ters çevrilmiş görünümünü sağlamak için görünüm.
Şablon parametre türü hakkında bilgi için bkz . Şablon parametreleri.
Dönüş değeri
Ters sırada temel alınan aralığın görünümü.
Açıklamalar
Oluşturmanın reverse_view en iyi yolu, aralık bağdaştırıcısını views::reverse 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.
1) Varsayılan oluşturucu varsayılan olarak bir reverse_viewbaşlatır.
2) Belirtilen görünümden bir reverse_view oluşturun.
Örnek: reverse_view
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v{0, 1, 2, 3, -4, 5, 6};
auto rv = v | std::views::reverse;
for (auto e : rv) // 6 5 -4 3 2 1 0
{
std::cout << e << ' ';
}
}
6 5 -4 3 2 1 0
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() &&;
Parametreler
Hiçbiri.
Dönüş değeri
Temel alınan görünüm.
begin
içindeki ilk öğeye reverse_viewbir yineleyici alın.
1) constexpr reverse_iterator<iterator_t<V>> begin();
2) constexpr reverse_iterator<iterator_t<V>> begin() requires common_range<V>;
3) constexpr auto begin() const requires common_range<const V>;
Parametreler
Hiçbiri.
Dönüş değeri
içindeki ilk öğeye reverse_viewişaret eden bir yineleyici.
Açıklamalar
öğesine yapılan ilk çağrıdan begin()sonra, içinde kaç öğe olursa olsun, izleyen çağrılar reverse_viewO(1) sabit zamanında çalışır. Değerini önbelleğe last alıp tekrar tekrar uygulamasından begindöndürebilmesi nedeniyle bu durumun etkileri reverse_view vardır. Bu, temel kapsayıcı değiştirildikten sonra görünümü yeniden kullanmamanız gerektiği anlamına gelir. Temel alınan aralık değiştirilirse, ucuz olan yeni bir görünüm oluşturun.
2) Temel alınan görünümün yerine common_rangegetirmesi gerekir. Bu, temel alınan görünümün aynı başlangıç ve bitiş yineleyici türüne sahip olması gerektiği anlamına gelir.
3) Temel alınan görünümün, sabit görünümün üzerinde yineleme yapması için karşılaması common_range const reverse_viewgerekir.
end
Sentinel'i reverse_view
1) constexpr reverse_iterator<iterator_t<V>> end();
2) constexpr auto end() const requires common_range<const V>;
Parametreler
Hiçbiri.
Dönüş değeri
içindeki son öğeyi reverse_viewizleyen sentinel.
Açıklamalar
2 için, temel görünümün sabit görünüm için karşılaması common_range gerekir; bu da temel görünümün aynı başlangıç ve bitiş yineleyici türüne sahip olması gerektiği anlamına gelir.
size
Öğ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
içindeki reverse_viewöğe sayısı.
Açıklamalar
Görünümün boyutu yalnızca temel alınan aralık bir ise veya başka bir sized_rangedeyişle sınırlanmışsa kullanılabilir.
Ayrıca bkz.
<ranges>
reverse aralık bağdaştırıcısı
Sınıfları görüntüleme