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.
baseC++20 Rufen Sie einen Verweis auf den zugrunde liegenden Bereich ab.
beginC++20 Rufen Sie einen Iterator zum ersten Element ab.
endC++20 Rufen Sie den Sentinel am Ende der Ansicht ab.
Geerbt von view_interface Beschreibung
backC++20 Rufen Sie das letzte Element ab.
emptyC++20 Testen Sie, ob die Ansicht leer ist.
frontC++20 Rufen Sie das erste Element ab.
operator boolC++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

  1. Die zurückgegebene Ansicht wird kopiert.
  2. 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:

Abbildung eines Vektors mit den Elementen 10, 20 und 30. Das erste Element enthält 10 und ist mit

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:

Abbildung eines Vektors mit den Elementen 10, 20 und 30. Das erste Element enthält 10 und ist mit

Siehe auch

join Range Adaptor
<ranges>
Anzeigen von Klassen