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 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.
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.
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 olurranges::size(base).