Aracılığıyla paylaş


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

Başka bir görünümdeki ilk N öğelerinin görünümü.

Sözdizimi

template<view V>
class take_view : public view_interface<take_view<V>>;

Şablon parametreleri

V
Temel alınan aralığı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::take
Temel alınan aralık Herhangi bir aralık
Öğe türü Temel alınan aralıkla aynı
Yineleyici kategoriyi görüntüleme Temel alınan aralıkla aynı
Boyutlu Hayır
- constyinelenebilir Yalnızca temel alınan aralık const yinelenebilirse
Ortak aralık Yalnızca temel alınan aralık ve random_access_rangesized_range
Ödünç alınan aralık Yalnızca temel alınan aralık borrowed_range

Üyeler

Üye işlevleri Açıklama
Oluşturucular Görünümü oluşturma.
baseC++20 Temel alınan aralığı alın.
beginC++20 İlk öğeye bir yineleyici alın.
endC++20 Görünümün 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.
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.

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 take_view

1) take_view() requires default_initializable<V> = default;
2) constexpr take_view(V base, range_difference_t<V> count);

Parametreler

base
Temel alınan görünüm.

count
Temel alınan görünümün önünden alınması gereken öğe sayısı. Temel görünümdeki öğe sayısından fazlaysa count , görünüm temel alınan aralıktaki tüm öğeleri içerir.

Şablon parametre türü hakkında bilgi için bkz . Şablon parametreleri.

Dönüş değeri

A take_view, başka bir görünümdeki ilk N öğelerinin görünümüdür. Temel alınan aralıkta var olandan daha fazla öğe belirtirseniz, bir empty_view döndürülür.

Açıklamalar

Oluşturmanın take_view en iyi yolu, aralık bağdaştırıcısını views::take kullanmaktır. Aralık bağdaştırıcıları, görünüm sınıfları oluşturmanın amaçlanan yoludur. Görünüm türleri yalnızca kendi özel görünüm türünüzü oluşturmak istemeniz durumunda kullanıma sunulur.

1) Öğesi olmayan bir take_view oluşturun. Temel alınan görünüm varsayılan olarak oluşturulur. base() öğesinin V()bir kopyasını döndürür.
2) bir ve sayısı'ndan base bir oluşturuntake_view. base aracılığıyla std::move()taşınır.

Temel alınan aralıktaki öğe sayısından küçükse count , count boyutunu take_viewbelirler.
Temel alınan aralıktaki öğelerin sayısından büyükse count , take_view temel alınan aralıktaki tüm öğeleri içerir.

Örnek: take_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 newView = std::views::take(v, 3);
    
    for (auto& e : newView)
    {
        std::cout << e << ' '; // 0 1 2
    }
    std::cout << '\n';

    // Use the '|' operator to create a take_view
    for (auto i : v | std::views::take(3))
    {
        std::cout << i << ' '; // 0 1 2
    }
}
0 1 2
0 1 2

base

Temel alınan görünümün bir kopyasını alır.

// Uses a copy constructor to return the underlying view
1) constexpr V base() const & requires std::copy_constructible<V>;

// Uses a move constructor to return the underlying view
2) constexpr V base() &&;

Parametreler

Hiçbiri.

Dönüş değeri

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

begin

Görünümdeki ilk öğeye bir yineleyici alın.

constexpr auto begin() requires (!Simple_view<V>);
constexpr auto begin() const requires range<const V>;

Parametreler

Hiçbiri.

Dönüş değeri

Görünümdeki ilk öğeye iş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.

Açıklamalar

1 için gereksinim, Simple_view<V> görünümün V ve const V aynı yineleyici ve sentinel türlerine sahip olması gerektiği anlamına gelir.

end

Görünümün sonunda sentinel'i alın.

1) constexpr auto end() requires !(Simple_view<V>);
2) constexpr auto end() const requires range<const V>;

Parametreler

Hiçbiri.

Dönüş değeri

Görünümdeki son öğeyi izleyen 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.

Açıklamalar

1 için gereksinim, Simple_view<V> görünümün V ve const V aynı yineleyici ve sentinel türlerine sahip olması gerektiği anlamına gelir.

size

Öğe sayısını alın.

constexpr auto size() requires sized_range<V>;
constexpr auto size() const requires sized_range<const V>;

Parametreler

Hiçbiri.

Dönüş değeri

içindeki take_viewöğe sayısı.
açık take_view bir countile oluşturulduysa:

  • temel alınan aralıktaki öğe sayısından küçükse count , görünümün boyutu olarak döndürülür.
  • temel alınan aralıktaki öğe sayısından büyükse count , görünümün boyutu olur ranges::size(base).

Ayrıca bkz.

<ranges>
take aralık bağdaştırıcısı
sınıfları görüntüleme