Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zobrazení obsahující prvky oblasti, které zůstávají po vyřazení úvodních prvků odpovídajících predikátu.
Syntaxe
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>>;
Parametry šablony
V
Typ podkladového zobrazení.
P
Typ predikátu, který určuje počáteční prvky, které se mají vypustit.
Zobrazení charakteristik
Popis následujících položek naleznete v tématu Zobrazení vlastností třídy.
| Charakteristika | Popis |
|---|---|
| Adaptér rozsahu | views::drop_while |
| Podkladová oblast | Musí splňovat forward_range nebo vyšší a iterátory základního rozsahu musí modelovat. sized_sentinel_for |
| Typ elementu | Stejné jako podkladová oblast |
| Zobrazit kategorii iterátoru | Stejné jako podkladová oblast |
| Tříděný | Pouze v případě, že základní rozsah splňuje požadavky random_access_range |
Je const-iterable |
No |
| Společný rozsah | Pouze v případě, že základní rozsah splňuje požadavky common_range |
| Zapůjčený rozsah | Pouze v případě, že základní rozsah splňuje požadavky borrowed_range |
Členové
| Členské funkce | Popis |
|---|---|
| Konstruktory | Vytvořte zobrazení. |
base |
Získejte podkladové zobrazení. |
begin |
Získejte iterátor k prvnímu prvku. |
end |
Získejte sentinel na konci zobrazení. |
pred |
Získejte odkaz na predikát, který určuje, které prvky se mají vypustit. |
| Zděděno z view_interface | Popis |
backC++20 |
Získejte poslední prvek. |
dataC++20 |
Získejte ukazatel na první prvek. |
emptyC++20 |
Otestujte, jestli je zobrazení prázdné. |
frontC++20 |
Získejte první prvek. |
operator[]C++20 |
Získejte prvek na zadané pozici. |
operator boolC++20 |
Otestujte, jestli zobrazení není prázdné. |
size |
Získejte počet prvků v zobrazení. |
Požadavky
Hlavička: <ranges> (od C++20)
Obor názvů: std::ranges
Je vyžadována možnost kompilátoru: /std:c++20 nebo novější.
Konstruktory
Vytvoření instance objektu drop_while_view.
1) constexpr drop_while_view(V base, P pred);
2) drop_while_view() requires default_initializable<V> && default_initializable<P> = default;
Parametry
base
Podkladová oblast.
pred
Predikát, který určuje úvodní prvky, které se mají vypustit.
Informace o typech parametrů šablony naleznete v tématu Parametry šablony.
Vrácená hodnota
Instance drop_while_view .
Poznámky
Nejlepší způsob, jak vytvořit, drop_while_view je použití adaptéru rozsahu views::drop_while . Adaptéry rozsahu představují zamýšlený způsob vytváření tříd zobrazení. Typy zobrazení jsou vystaveny pro případ, že chcete vytvořit vlastní typ zobrazení.
1) Přesuňte konstrukce drop_while_view ze base zobrazení a pred predikátu. Obě base a pred jsou přesunuty přes std::move().
2) Default-constructs a drop_while_view.
Příklad: 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
Získejte podkladové zobrazení.
// 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() &&;
Parametry
Žádná
Návraty
Podkladové zobrazení.
begin
Získejte iterátor k prvnímu prvku v zobrazení.
constexpr auto begin();
Vrácená hodnota
Iterátor ukazující na první prvek v zobrazení. Toto chování není definováno, pokud zobrazení nemá predikát.
end
Získejte sentinel na konci zobrazení.
constexpr auto end()
Vrácená hodnota
Sentinel, který následuje za posledním prvkem v zobrazení:
pred
Získejte odkaz na predikát, který určuje, které úvodní prvky se mají vypustit.
constexpr const Pred& pred() const;
Vrácená hodnota
Odkaz na predikát.
Poznámky
Pokud zobrazení neukládá predikát, chování není definováno.
Příklad: 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
Viz také
<ranges>
drop_while adaptér rozsahu
take_while adaptér rozsahu
take_while_view
zobrazit třídy