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 . |
base C++20 |
Obtenez une référence à la plage sous-jacente. |
begin C++20 |
Obtenez un itérateur au premier élément. |
end C++20 |
Obtenez la sentinelle à la fin de la vue. |
Hérité de view_interface |
Description |
back C++20 |
Obtenez le dernier élément. |
empty C++20 |
Testez si la vue est vide. |
front C++20 |
Obtenez le premier élément. |
operator bool C++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
- La vue retournée est copiée.
- 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 :
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 :