join_view
Klasse (C++-Standardbibliothek)
Kombiniert die Elemente eines Bereichs in einer einzelnen Ansicht.
Syntax
template<input_range R> requires view<R> && input_range<range_reference_t<R>> &&
(is_reference_v<range_reference_t<R>> || view<range_value_t<R>>)
class join_view : public view_interface<join_view<R>>;
Vorlagenparameter
R
Der Typ des zugrunde liegenden Bereichs. Muss zufrieden stellen input_range
oder höher sein.
Eigenschaften der Ansicht
Eine Beschreibung der folgenden Einträge finden Sie unter Anzeigen von Klassenmerkmalen
Merkmal | Beschreibung |
---|---|
Range Adaptor | views::join |
Zugrunde liegender Bereich | Muss erfüllen input_range oder höher |
Elementtyp | Identisch mit dem zugrunde liegenden Bereich |
Iteratorkategorie anzeigen | input_range bis zu bidirectional_range je nach dem zugrunde liegenden Bereich, der durchlaufen wird |
Größer eingestellt | No |
Ist const -iterierbar |
Nur, wenn der zugrunde liegende Bereich iterierbar ist const |
Allgemeiner Bereich | Nur, wenn der zugrunde liegende Bereich erfüllt ist common_range |
Geliehener Bereich | No |
Member
Memberfunktionen | Beschreibung |
---|---|
Konstruktoren C++20 | Erstellen eines join_view . |
base C++20 |
Rufen Sie einen Verweis auf den zugrunde liegenden Bereich ab. |
begin C++20 |
Rufen Sie einen Iterator zum ersten Element ab. |
end C++20 |
Rufen Sie den Sentinel am Ende der Ansicht ab. |
Geerbt von view_interface |
Beschreibung |
back C++20 |
Rufen Sie das letzte Element ab. |
empty C++20 |
Testen Sie, ob die Ansicht leer ist. |
front C++20 |
Rufen Sie das erste Element ab. |
operator bool C++20 |
Testen Sie, ob die Ansicht nicht leer ist. |
Hinweise
Die beste Methode zum Erstellen eines Steuerelements join_view
ist die Verwendung des views::join
Bereichsadapters. Range adaptors are the intended way to access view classes. Die Ansichtstypen werden für den Fall verfügbar gemacht, dass Sie ihren eigenen benutzerdefinierten Ansichtstyp erstellen möchten.
Diese Ansicht ist nützlich, wenn Sie mehrere Bereiche in einer einzelnen Ansicht kombinieren möchten.
Anforderungen
Header: <ranges>
(seit C++20)
Namespace:std::ranges
Compileroption: /std:c++20
oder höher ist erforderlich.
Konstruktoren
Erstellen Sie eine Instanz von join_view
.
1) join_view() = default;
2) constexpr explicit join_view(R base)
Parameter
base
Der zugrunde liegende Bereich.
Informationen zum Vorlagenparametertyp finden Sie unter Vorlagenparameter.
Hinweise
1) Standardkonstrukte eines join_view
.
2) Erstellt die join_view
von base
.
Beispiel: join_view
// requires /std:c++20, or later
#include <iostream>
#include <vector>
#include <ranges>
int main()
{
std::vector<int> rg1{1, 2, 3, 4};
std::vector<int> rg2{5, 6, 7};
std::vector<int> rg3{8, 9, 10, 11, 12, 13};
std::vector<int> rangeOfRanges[] {rg1, rg2, rg3};
auto jv = std::ranges::join_view(rangeOfRanges);
for (auto& e : jv)
{
std::cout << e << " ";
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13
base
Rufen Sie die zugrunde liegende Ansicht ab.
// Uses a copy constructor to return the underlying view
1) constexpr V base() const& requires std::copy_constructible<V>;
// Uses a move constructor to return the underlying view
2) constexpr V base() &&;
Parameter
Keine
Rückgabewert
- Die zurückgegebene Ansicht wird kopiert.
- Die zurückgegebene Ansicht wird erstellt.
begin
Rufen Sie einen Iterator zum ersten Element in der Ansicht ab.
constexpr auto begin();
constexpr auto begin() const
requires ranges::input_range<const V> && std::is_reference_v<ranges::range_reference_t<const V>>;
Parameter
Keine
Rückgabewert
Ein Iterator, der auf das erste Element in der Ansicht zeigt:
end
Rufen Sie den Sentinel am Ende der Ansicht ab.
constexpr sentinel_t<R> end();
constexpr auto end() const requires range<const R>
Parameter
Keine
Rückgabewert
Der Sentinel, der auf das letzte Element in der Ansicht folgt: