drop_while_view
classe (libreria standard C++)
Visualizzazione che contiene gli elementi di un intervallo che rimangono una volta eliminati gli elementi iniziali che corrispondono a un predicato.
Sintassi
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>>;
Parametri del modello
V
Tipo della vista sottostante.
P
Tipo del predicato che determina gli elementi iniziali da eliminare.
Visualizzare le caratteristiche
Per una descrizione delle voci seguenti, vedere Visualizzare le caratteristiche della classe
Caratteristica | Descrizione |
---|---|
Adattatore di intervallo | views::drop_while |
Intervallo sottostante | Deve soddisfare forward_range o superiore e gli iteratori dell'intervallo sottostante devono modellare sized_sentinel_for |
Tipo di elemento | Uguale all'intervallo sottostante |
Visualizzare la categoria iteratore | Uguale all'intervallo sottostante |
Dimensioni | Solo se l'intervallo sottostante soddisfa random_access_range |
Iterabile const |
No |
Intervallo comune | Solo se l'intervallo sottostante soddisfa common_range |
Intervallo preso in prestito | Solo se l'intervallo sottostante soddisfa borrowed_range |
Membri
Funzioni membro | Descrizione |
---|---|
Costruttori | Costruisci la vista. |
base |
Ottenere la visualizzazione sottostante. |
begin |
Ottenere un iteratore al primo elemento. |
end |
Ottenere l'sentinel alla fine della visualizzazione. |
pred |
Ottenere un riferimento al predicato che determina gli elementi da eliminare. |
Ereditato da view_interface | Descrizione |
back C++20 |
Ottiene l'ultimo elemento. |
data C++20 |
Ottenere un puntatore al primo elemento. |
empty C++20 |
Verificare se la visualizzazione è vuota. |
front C++20 |
Ottenere il primo elemento. |
operator[] C++20 |
Ottiene l'elemento nella posizione specificata. |
operator bool C++20 |
Verificare se la visualizzazione non è vuota. |
size |
Ottiene il numero di elementi nella visualizzazione. |
Requisiti
Intestazione: <ranges>
(da C++20)
Spazio dei nomi: std::ranges
Opzione del compilatore: /std:c++20
o versione successiva è obbligatoria.
Costruttori
Costruire un'istanza di un oggetto drop_while_view
.
1) constexpr drop_while_view(V base, P pred);
2) drop_while_view() requires default_initializable<V> && default_initializable<P> = default;
Parametri
base
Intervallo sottostante.
pred
Predicato che determina gli elementi iniziali da eliminare.
Per informazioni sui tipi di parametri del modello, vedere Parametri del modello.
Valore restituito
Istanza di drop_while_view
.
Osservazioni:
Il modo migliore per creare un drop_while_view
oggetto consiste nell'usare l'adattatore views::drop_while
di intervallo. Gli adattatori di intervallo sono il modo previsto per creare classi di visualizzazione. I tipi di visualizzazione vengono esposti nel caso in cui si voglia creare un tipo di visualizzazione personalizzato.
1) Sposta costruisce l'oggetto drop_while_view
da una base
vista e un pred
predicato. Entrambi base
e pred
vengono spostati tramite std::move()
.
2) Default-constructs a drop_while_view
.
Esempio: 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
Ottenere la visualizzazione sottostante.
// 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() &&;
Parametri
Nessuna.
Valori restituiti
Visualizzazione sottostante.
begin
Ottiene un iteratore al primo elemento nella visualizzazione.
constexpr auto begin();
Valore restituito
Iteratore che punta al primo elemento della visualizzazione. Il comportamento non è definito se la vista non ha un predicato.
end
Ottenere l'sentinel alla fine della visualizzazione.
constexpr auto end()
Valore restituito
Sentinel che segue l'ultimo elemento nella visualizzazione:
pred
Ottenere un riferimento al predicato che determina quali elementi iniziali eliminare.
constexpr const Pred& pred() const;
Valore restituito
Riferimento al predicato.
Osservazioni:
Se la visualizzazione non archivia un predicato, il comportamento non è definito.
Esempiopred
// 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
Vedi anche
<ranges>
drop_while
adattatore di intervallo
take_while
adattatore di intervallo
take_while_view
classi di visualizzazione