Aracılığıyla paylaş


drop_view class (C++ Standart Kitaplığı)

Bir aralığın ilk N öğelerini dışlayan bir görünüm oluşturun.

Sözdizimi

template<ranges::view V>
class drop_view : public ranges::view_interface<drop_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

Karakteristik Açıklama
Aralık bağdaştırıcısı views::drop
Temel alınan aralık Veya üzerini karşılaması output_range gerekir
Öğ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 yinelenebilirse const ve random_access_rangesized_range
Ortak aralık Yalnızca temel alınan aralık bir common_range
Ö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 drop_view.
base C++20 Temel alınan görünümü alın.
begin C++20 İlk öğeye bir yineleyici alın.
end C++20 Görünümün sonunda sentinel'i alın.
size C++20 Bu görünümdeki öğe sayısını alın. Temel alınan aralığın karşılaması sized_rangegerekir.
Devralınan view_interface Açıklama
back C++20 Son öğeyi alın.
data C++20 İlk öğeye bir işaretçi alın.
empty C++20 öğesinin drop_view boş olup olmadığını test edin.
front C++20 İlk öğeyi alın.
operator[] C++20 Öğesini belirtilen konumda alın.
operator bool C++20 öğesinin drop_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

Bir örneğini oluşturma drop_view

template<ranges::view V>
class drop_view : public ranges::view_interface<drop_view<V>>

Şablon parametreleri

V
Temel alınan görünümün türü.

Dönüş değeri

Belirtilen sayıda öğeyi önden hariç tutarak temel aralığın görünümü.
Bırakılacak daha fazla öğe belirtirseniz, temel alınan aralıkta empty_view var olandan daha fazla öğe döndürülür.

Açıklamalar

Oluşturmanın drop_view en iyi yolu, aralık bağdaştırıcısını views::drop 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.

Örnek: drop_view

// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <vector>

int main()
{
    std::vector<int> v{ 1, 2, 3, 4, 5 };
    auto newView = std::views::drop(v, 3);
    for (auto e : newView) // outputs 4 5
    {
        std::cout << e << ' ';
    }
    std::cout << '\n';

    auto numbers = std::views::iota(0) | std::views::take(10); // generate a view of 10 integers
    for (auto i : numbers | std::views::drop(5)) // use the '|' syntax to create a drop_view
    {
        std::cout << i << ' '; // outputs 5 6 7 8 9
    }
}
4 5
5 6 7 8 9

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 drop_viewbir yineleyici alın.

constexpr auto begin()
  requires (!(Simple_view<V> && ranges::random_access_range<const V> && ranges::sized_range<const V>));

constexpr auto begin() const
  requires ranges::random_access_range<const V> && ranges::sized_range<const V>;

Parametreler

Hiçbiri.

Dönüş değeri

içindeki ilk öğeye drop_viewişaret eden bir yineleyici.

10, 20 ve 30 öğelerini içeren bir vektör resmi. İlk öğe 10 içerir ve begin() olarak etiketlenir. Son öğe 30 içerir ve 'son öğe' olarak etiketlenmiştir. Son öğeden sonraki bir sanal kutu sentinel'i gösterir ve end() olarak etiketlenmiştir.

end

Sentinel'i drop_view

constexpr auto end() requires (!Simple_view<V>);
constexpr auto end() const requires ranges::range<const V>;

Parametreler

Hiçbiri.

Dönüş değeri

içindeki son öğeyi drop_viewizleyen sentinel:

10, 20 ve 30 öğelerini içeren bir vektör resmi. İlk öğe 10 içerir ve begin() olarak etiketlenir. Son öğe 30 içerir ve 'son öğe' olarak etiketlenmiştir. Son öğeden sonraki bir sanal kutu sentinel'i gösterir ve end() olarak etiketlenmiştir.

size

içindeki drop_viewöğe sayısını alır.

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 drop_viewöğe sayısı.

Açıklamalar

Temel alınan aralığın karşılaması sized_rangegerekir.

Ayrıca bkz.

<ranges>
drop aralık bağdaştırıcısı
take_while()
take_while_view
Sınıfları görüntüleme