std::ranges:: views:: take_while, std::ranges:: take_while_view
|
Definiert im Header
<ranges>
|
||
|
template
<
ranges::
view
V,
class
Pred
>
requires
ranges::
input_range
<
V
>
&&
|
(1) | (seit C++20) |
|
namespace
views
{
inline
constexpr
/*unspecified*/
take_while
=
/*unspecified*/
;
|
(2) | (seit C++20) |
|
Aufrufsignatur
|
||
|
template
<
ranges::
viewable_range
R,
class
Pred
>
requires
/* siehe unten */
|
(seit C++20) | |
|
template
<
class
Pred
>
constexpr /*range adaptor closure*/ take_while ( Pred && pred ) ; |
(seit C++20) | |
view
der Elemente aus einer zugrundeliegenden Sequenz darstellt, beginnend am Anfang und endend beim ersten Element, für das das Prädikat
false
zurückgibt.
take_while_view
modelliert die Konzepte
contiguous_range
,
random_access_range
,
bidirectional_range
,
forward_range
und
input_range
, wenn die zugrundeliegende View
V
die jeweiligen Konzepte modelliert.
Inhaltsverzeichnis |
Datenmitglieder
| Mitglied | Beschreibung |
V
base_
(privat)
|
die zugrundeliegende Ansicht
( Nur-Darstellungs-Memberobjekt* ) |
copyable-box
<Pred>
(bis C++23)
movable-box
<Pred>
(seit C++23)
pred_
(privat)
|
das zugrundeliegende Funktionsobjekt
( Nur-Darstellungs-Memberobjekt* ) |
Memberfunktionen
konstruiert einen
take_while_view
(öffentliche Elementfunktion) |
|
|
gibt eine Kopie der zugrundeliegenden (adaptierten) Ansicht zurück
(öffentliche Elementfunktion) |
|
|
gibt eine Referenz auf das gespeicherte Prädikat zurück
(öffentliche Elementfunktion) |
|
|
gibt einen Iterator zum Anfang zurück
(öffentliche Elementfunktion) |
|
|
gibt einen Sentinel zurück, der das Ende repräsentiert
(öffentliche Elementfunktion) |
|
Geerbt von std::ranges::view_interface |
|
gibt zurück, ob die abgeleitete Ansicht leer ist, bereitgestellt nur wenn sie
sized_range
oder
forward_range
erfüllt
(öffentliche Elementfunktion von
std::ranges::view_interface<D>
)
|
|
|
(C++23)
|
gibt einen konstanten Iterator zum Anfang des Bereichs zurück
(öffentliche Elementfunktion von
std::ranges::view_interface<D>
)
|
|
(C++23)
|
gibt einen Sentinel für den konstanten Iterator des Bereichs zurück
(öffentliche Elementfunktion von
std::ranges::view_interface<D>
)
|
|
gibt zurück, ob die abgeleitete Ansicht nicht leer ist, bereitgestellt nur wenn
ranges::empty
darauf anwendbar ist
(öffentliche Elementfunktion von
std::ranges::view_interface<D>
)
|
|
ruft die Adresse der Daten der abgeleiteten Ansicht ab, bereitgestellt nur wenn ihr Iteratortyp
contiguous_iterator
erfüllt
(öffentliche Elementfunktion von
std::ranges::view_interface<D>
)
|
|
gibt das erste Element in der abgeleiteten Ansicht zurück, bereitgestellt wenn sie
forward_range
erfüllt
(öffentliche Elementfunktion von
std::ranges::view_interface<D>
)
|
|
gibt das
n
te
Element in der abgeleiteten Ansicht zurück, bereitgestellt nur wenn sie
random_access_range
erfüllt
(öffentliche Elementfunktion von
std::ranges::view_interface<D>
)
|
|
Ableitungsleitfäden
Geschachtelte Klassen
|
der Sentinel-Typ
( Nur zur Darstellung verwendete Member-Klassenvorlage* ) |
Hinweise
Für
forward_iterator
s
ist
views
::
take_while
(
v, pred
)
ähnlich zu
ranges::
subrange
{
ranges::
begin
(
v
)
,
ranges::
find_if_not
(
v, pred
)
}
, wobei Letzteres
pred
nur während der Konstruktion aufruft (während Ersteres
pred
bei jedem Vergleich eines gültigen
take_while
-Iterators mit einem Sentinel aufruft).
Beispiel
#include <iostream> #include <ranges> int main() { for (int year : std::views::iota(2020) | std::views::take_while([](int y){ return y < 2026; })) std::cout << year << ' '; std::cout << '\n'; const char note[]{"Today is yesterday's tomorrow!..."}; auto not_dot = [](char c){ return c != '.'; }; for (char x : std::ranges::take_while_view(note, not_dot)) std::cout << x; std::cout << '\n'; }
Ausgabe:
2020 2021 2022 2023 2024 2025 Today is yesterday's tomorrow!
Siehe auch
|
(C++20)
|
eine
view
, bestehend aus den ersten N Elementen einer anderen
view
(Klassentemplate) (Range-Adapter-Objekt) |
eine
view
, bestehend aus den Elementen einer anderen
view
, die das anfängliche Teilelement überspringt, bis zum ersten Element, bei dem das Prädikat
false
zurückgibt
(Klassentemplate) (Range-Adapter-Objekt) |