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 koşulla eşleşen bir aralığın önde gelen öğelerini içeren görünüm.
Sözdizimi
template<view V, class Pred> requires
input_range<V> && is_object_v<Pred> &&
indirect_unary_predicate<const Pred, iterator_t<V>>
class take_while_view : public view_interface<take_while_view<V, Pred>>;
Şablon parametreleri
Pred
Görünüme koyulacak öndeki öğeleri belirleyen koşul türü.
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::take_while |
| Temel alınan aralık | Veya üzerini karşılaması input_range gerekir |
| Öğ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 yinelenebilirse const ve koşul başvurularla const çalışabilirse. |
| Ortak aralık | Hayır |
| Ödünç alınan aralık | Hayır |
Üyeler
| Üye işlevleri | Açıklama |
|---|---|
| OluşturucularC++20 | 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. |
predC++20 |
Hangi öğelerin alındığını belirleyen koşula bir başvuru 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. |
size |
Görünümdeki öğe sayısını alın. |
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_while_view
1) take_while_view() requires
default_initializable<V> &&
default_initializable<Pred> = default;
2) constexpr take_while_view(V base, Pred pred);
Parametreler
base
Temel alınan görünüm.
pred
Görünüme koymak için önde gelen öğeleri belirleyen koşul.
Şablon parametre türleri hakkında bilgi için bkz . Şablon parametreleri.
Dönüş değeri
Bir take_while_view nesnesi.
Açıklamalar
Oluşturmanın take_while_view en iyi yolu, aralık bağdaştırıcısını views::take_while 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) Bir görünümden ve koşuldan base pred öğesini take_while_view taşır. hem hem de base pred aracılığıyla std::move()taşınır.
2) Boş take_while_viewbir oluşturur. Temel alınan görünüm ve koşul varsayılan olarak oluşturulur.
Örnek: take_while_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 twv = std::views::take_while(v, [](int i) {return i >= 0; });
for (auto& e : twv)
{
std::cout << e << ' '; // 0 1 2 3
}
std::cout << '\n';
// Using the '|' operator to create a take_view
for (auto i : v | std::views::take_while([](int i) {return i < 5; }))
{
std::cout << i << ' '; // 0 1 2 3 -4
}
}
0 1 2 3
0 1 2 3 -4
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öndürülenler
Temel alınan görünümün bir kopyası.
begin
Görünümdeki ilk öğeye bir yineleyici alın.
1) constexpr auto begin() requires (!Simple_view<V>);
2) constexpr auto begin() const requires
range<const V> &&
indirect_unary_predicate<const Pred, iterator_t<const V>>
Parametreler
Hiçbiri.
Dönüş değeri
Görünümdeki ilk öğeye işaret eden bir yineleyici. Görünümün bir koşulu yoksa davranış tanımlanmamıştır.
Açıklamalar
1 için Simple_view gereksinim, bir görünümün V aynı yineleyici ve const V sentinel türlerine sahip olduğu 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> &&
indirect_unary_predicate<const Pred, iterator_t<const V>
Parametreler
Hiçbiri.
Dönüş değeri
Görünümdeki son öğeyi izleyen sentinel.
Açıklamalar
1 için Simple_view gereksinim, bir görünümün V aynı yineleyici ve const V sentinel türlerine sahip olduğu anlamına gelir.
pred
Görünümde hangi öncü öğelerin gideceğini seçmek için kullanılan koşula bir başvuru alın.
constexpr const Pred& pred() const;
Dönüş değeri
Görünüme eklenecek öndeki öğeleri seçmek için kullanılan koşul başvurusu.
Örnek pred
// 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 mv = v | std::views::take_while(
[](int i) {return i < 5; });
std::cout << std::boolalpha << mv.pred()(v[6]); // outputs false because v[6] = 6 and 6 is not less than 5 (the predicate)
}
Ayrıca bkz.
<ranges>
take_view
take_while aralık bağdaştırıcısı
sınıfları görüntüleme