common_view
Klasse (C++-Standardbibliothek)
Nehmen Sie einen Bereich, der möglicherweise unterschiedliche Iterator- und Sentineltypen aufweist, und erstellen Sie eine Ansicht mit demselben Iterator- und Sentineltyp. Dies ist nützlich für das Aufrufen von STL-Algorithmen, die von Iteratorpaaren angegebene Bereiche akzeptieren.
Syntax
template<ranges::view V>
requires (!ranges::common_range<V> && std::copyable<ranges::iterator_t<V>>)
class common_view : public ranges::view_interface<common_view<V>>;
Vorlagenparameter
V
Der Typ der zugrunde liegenden Ansicht.
Eigenschaften der Ansicht
Eine Beschreibung der folgenden Einträge finden Sie unter Anzeigen von Klassenmerkmalen
Merkmal | Beschreibung |
---|---|
Range Adaptor | views::common |
Zugrunde liegender Bereich | Muss erfüllen forward_range oder höher |
Elementtyp | Identisch mit dem zugrunde liegenden Bereich |
Iteratorkategorie anzeigen | forward_range oder random_access_range wenn der zugrunde liegende Bereich erfüllt random_access_range und sized_range |
Größer eingestellt | Nur, wenn der zugrunde liegende Bereich erfüllt ist sized_range |
Ist const -iterierbar |
Nur, wenn der zugrunde liegende Bereich iterierbar ist const |
Allgemeiner Bereich | Ja |
Geliehener Bereich | Nur, wenn der zugrunde liegende Bereich erfüllt ist borrowed_range |
Member
Memberfunktionen | Beschreibung |
---|---|
Konstruktoren C++20 | Erstellen Sie ein common_view . |
base C++20 |
Rufen Sie die zugrunde liegende Ansicht ab. |
begin C++20 |
Rufen Sie einen Iterator zum ersten Element in der Ansicht ab. |
end C++20 |
Rufen Sie den Sentinel am Ende der Ansicht ab. |
size C++20 |
Ruft die Anzahl der Elemente in der Ansicht ab. |
Geerbt von view_interface |
Beschreibung |
back C++20 |
Rufen Sie das letzte Element ab. |
data C++20 |
Rufen Sie einen Zeiger auf das erste Element ab. |
empty C++20 |
Testen Sie, ob die Ansicht leer ist. |
front C++20 |
Rufen Sie das erste Element ab. |
operator[] C++20 |
Rufen Sie das Element an der angegebenen Position ab. |
operator bool C++20 |
Testen Sie, ob die Ansicht nicht leer ist. |
Hinweise
Die beste Methode zum Erstellen eines Steuerelements common_view
ist die Verwendung des views::common
Bereichsadapters. Bereichsadapter sind die beabsichtigte Möglichkeit zum Erstellen von Ansichtsklassen. Die Ansichtstypen werden für den Fall verfügbar gemacht, dass Sie ihren eigenen benutzerdefinierten Ansichtstyp erstellen möchten.
Diese Ansicht ist nützlich, um einen Bereich mit unterschiedlichen Iterator-/Sentinel-Typen an einen Legacyalgorithmus zu übergeben, der davon ausgeht, dass er identisch ist.
Anforderungen
Header: <ranges>
(seit C++20)
Namespace:std::ranges
Compileroption: /std:c++20
oder höher ist erforderlich.
Konstruktoren
Erstellen Sie eine Instanz von common_view
.
1) common_view() = default;
2) constexpr explicit common_view(V v);
Parameter
v
Die zugrunde liegende Ansicht.
Informationen zum Vorlagenparametertyp finden Sie unter Vorlagenparameter.
Hinweise
1) Standardkonstrukte des common_view
.
2) Erstellt eine common_view
aus der zugrunde liegenden Ansicht mithilfe std::move(v)
von . Ein Fehler führt dazu, wenn V
es sich um einen gemeinsamen Bereich handelt, um Missbrauch zu vermeiden, der sich negativ auf die Leistung auswirkt.
base
Ruft eine Kopie der zugrunde liegenden Ansicht ab.
// Uses a copy constructor to return the underlying view
constexpr V base() const& requires std::copy_constructible<V>;
// Uses a move constructor to return the underlying view
constexpr V base() &&;
begin
Rufen Sie einen Iterator zum ersten Element ab.
constexpr auto begin();
constexpr auto begin() const requires range<const V>;
Rückgabewert
Ein Iterator, der auf das erste Element in der Ansicht zeigt:
end
Rufen Sie den Sentinel am Ende der Ansicht ab.
constexpr auto end();
constexpr auto end() const requires ranges::range<const V>;
Rückgabewert
Der Sentinel, der auf das letzte Element in der Ansicht folgt:
size
Ruft die Anzahl der Elemente in der Ansicht ab.
constexpr auto size() requires ranges::sized_range<V>;
constexpr auto size() const requires ranges::sized_range<const V>;
Parameter
Keine
Rückgabewert
Die Anzahl der Elemente in der Ansicht.