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 önde gelen öğeler bırakıldıktan sonra kalan bir aralığın öğelerini içeren görünüm.
Sözdizimi
template<ranges::view V, class P>
requires ranges::input_range<V> &&
std::is_object_v<P> &&
std::indirect_unary_predicate<const P, ranges::iterator_t<V>>
class drop_while_view : public ranges::view_interface<drop_while_view<V, P>>;
Şablon parametreleri
V
Temel alınan görünümün türü.
P
Bırakacak öndeki öğeleri belirleyen koşulun 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::drop_while |
| Temel alınan aralık | Veya üzerini karşılamalı forward_range ve temel aralığın yineleyicileri modellenmelidir sized_sentinel_for |
| Öğ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 random_access_range |
- constyinelenebilir |
Hayır |
| Ortak aralık | Yalnızca temel alınan aralık karşılanırsa 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şturucular | Görünümü oluşturma. |
base |
Temel alınan görünümü alın. |
begin |
İlk öğeye bir yineleyici alın. |
end |
Görünümün sonunda sentinel'i alın. |
pred |
Hangi öğelerin bırakıldığını belirleyen koşula bir başvuru alın. |
| view_interface devralındı | 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 drop_while_viewoluşturun.
1) constexpr drop_while_view(V base, P pred);
2) drop_while_view() requires default_initializable<V> && default_initializable<P> = default;
Parametreler
base
Temel alınan aralık.
pred
Bırakacak öndeki öğeleri belirleyen koşul.
Şablon parametre türleri hakkında bilgi için bkz . Şablon parametreleri.
Dönüş değeri
Bir drop_while_view örnek.
Açıklamalar
Oluşturmanın drop_while_view en iyi yolu, aralık bağdaştırıcısını views::drop_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 drop_while_view taşır. hem hem de base pred aracılığıyla std::move()taşınır.
2) Varsayılan olarak bir drop_while_viewoluşturur.
Örnek: drop_while_view
// requires /std:c++20 or later
#include <ranges>
#include <vector>
#include <iostream>
void print(auto v)
{
for (auto& x : v)
{
std::cout << x << ' ';
}
std::cout << '\n';
}
int main()
{
std::vector<int> v{ 0, 1, 2, 3, -4, 5, 6 };
auto myView = std::views::drop_while(
v,
[](int i) {return i >= 0; });
print(myView); // -4 5 6
auto myView2 = v | std::views::drop_while(
[](int i) {return i < 5; });
print(myView2); // 5 6
}
-4 5 6
5 6
base
Temel alınan görünümü alın.
// Uses a copy constructor to return the underlying view
constexpr V base() const& requires std::copy_constructible<V>;
// Uses std::move() to return the underlying view
constexpr V base() &&;
Parametreler
Hiçbiri.
Döndürülenler
Temel alınan görünüm.
begin
Görünümdeki ilk öğeye bir yineleyici alın.
constexpr auto begin();
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.
end
Görünümün sonunda sentinel'i alın.
constexpr auto end()
Dönüş değeri
Görünümdeki son öğeyi izleyen sentinel:
pred
Hangi öncü öğelerin bırakıldığını belirleyen koşula bir başvuru alın.
constexpr const Pred& pred() const;
Dönüş değeri
Koşula bir başvuru.
Açıklamalar
Görünüm bir koşulu depolamıyorsa, davranış tanımlanmamıştır.
Ö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::drop_while(
[](int i) {return i < 5; }); // drop the leading elements < 5
std::cout << std::boolalpha << mv.pred()(v[6]); // outputs "false" because v[6] = 6 and 6 is not less than 5 (the predicate)
}
false
Ayrıca bkz.
<ranges>
drop_while aralık bağdaştırıcısı
take_while aralık bağdaştırıcısı
take_while_view
sınıfları görüntüleme