Partager via


join_view classe (bibliothèque standard C++)

Combine les éléments d’une plage de plages en une seule vue.

Syntaxe

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>>;

Paramètres de modèle

R
Type de la plage sous-jacente. Doit satisfaire input_range ou supérieur.

Afficher les caractéristiques

Pour obtenir une description des entrées suivantes, consultez les caractéristiques de classe View

Caractéristique Description
Adaptateur de plage views::join
Plage sous-jacente Doit satisfaire input_range ou supérieur
Type d’élément Identique à la plage sous-jacente
Afficher la catégorie d’itérateur input_range jusqu’à bidirectional_range en fonction de la plage sous-jacente en cours d’itération
Taille Non
Est const-itérable Uniquement si la plage sous-jacente est const itérable
Plage commune Uniquement si la plage sous-jacente satisfait common_range
Plage empruntée Non

Membres

Fonctions membres Description
Constructeurs C++20 Construire un join_view.
baseC++20 Obtenez une référence à la plage sous-jacente.
beginC++20 Obtenez un itérateur au premier élément.
endC++20 Obtenez la sentinelle à la fin de la vue.
Hérité de view_interface Description
backC++20 Obtenez le dernier élément.
emptyC++20 Testez si la vue est vide.
frontC++20 Obtenez le premier élément.
operator boolC++20 Testez si la vue n’est pas vide.

Notes

La meilleure façon de créer un join_view est d’utiliser l’adaptateur views::join de plage. Les adaptateurs de plage sont le moyen prévu d’accéder aux classes d’affichage. Les types d’affichage sont exposés au cas où vous souhaitez créer votre propre type d’affichage personnalisé.

Cette vue est utile lorsque vous souhaitez combiner plusieurs plages en une seule vue.

Spécifications

En-tête : <ranges> (depuis C++20)

Espace de noms : std::ranges

Option du compilateur : /std:c++20 ou version ultérieure est requise.

Constructeurs

Créez une instance de join_view.

1) join_view() = default;
2) constexpr explicit join_view(R base)

Paramètres

base
Plage sous-jacente.

Pour plus d’informations sur le type de paramètre de modèle, consultez Paramètres de modèle.

Notes

1) Construit par défaut un join_view.
2) Construit à partir de join_view base.

Exemple : 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

Obtenez l’affichage sous-jacent.

// 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() &&;

Paramètres

Aucune.

Valeur retournée

  1. La vue retournée est copiée.
  2. La vue retournée est déplacée.

begin

Obtenez un itérateur sur le premier élément de la vue.

constexpr auto begin();
constexpr auto begin() const
    requires ranges::input_range<const V> && std::is_reference_v<ranges::range_reference_t<const V>>;

Paramètres

Aucune.

Valeur retournée

Itérateur pointant vers le premier élément de la vue :

Image d’un vecteur avec les éléments 10, 20 et 30. Le premier élément contient 10 et est étiqueté begin(). Le dernier élément contient 30 et est intitulé « dernier élément ». Une zone imaginaire après le dernier élément indique la sentinelle et est étiquetée end().

end

Obtenez la sentinelle à la fin de la vue.

constexpr sentinel_t<R> end();
constexpr auto end() const requires range<const R>

Paramètres

Aucune.

Valeur retournée

Sentinel qui suit le dernier élément de la vue :

Image d’un vecteur avec les éléments 10, 20 et 30. Le premier élément contient 10 et est étiqueté begin(). Le dernier élément contient 30 et est intitulé « dernier élément ». Une zone imaginaire après le dernier élément indique la sentinelle et est étiquetée end().

Voir aussi

join adaptateur de plage
<ranges>
afficher les classes